2013-02-27 42 views
0

我有一個Javascript對象(這是一個dojo /有狀態的對象),我從數據結構創建。我想將有狀態的對象轉換回標準的散列對象。如何複製或TypeCast一個JavaScript對象到基類變量

a = {test: "a test"}; 
b = new stateful(a); 
new_a = new object(a); 

原因是因爲我有一個函數需要傳遞一個對象與基礎對象類。即使數據結構相同,傳遞一個有狀態的對象也是行不通的。

我發現,做一個

new_a = b; 
new_a.__proto__ = new_a.__proto__.__proto__ 

會做什麼,我想在Chrome的版本,我使用的,但我猜這是做的一個非常糟糕的方式。

回答

1

您可以爲原始對象上的每個屬性創建手錶。這將使原始對象與有狀態對象的更改保持同步。

本示例擴展dojo/Stateful對象以保留原始對象並添加手錶以更新原始對象。

http://jsfiddle.net/cswing/YJHtH/

相關問題