比方說,我們有,在Javascript中,像:JavaScript屬性鏡像到另一個實例
obj1.prop1.prop1_1.prop1_1_1 = 3;
如果這就是所謂的,我要值3在同一棵樹的位置設置,但在obj2的,好像我叫:這個
obj2.prop1.prop1_1.prop1_1_1 = 3;
所有與obj2的最初未填充prop1.prop1_1.prop1_1_1約束。
我想第一步將重寫obj1.prop1,因此它返回obj2.prop1。但obj2.prop1需要分配給與obj1.prop1相同類型的實例。我們怎麼做到這一點?
只是爲了澄清, ES5意味着ECMAScript 5,它是用於實現的Javascript標準。最新的瀏覽器支持它,但最值得注意的是IE8和更早版本不支持它。請參閱:http://kangax.github.com/es5-compat-table/以獲取支持「屬性初始值設定器中的Setter」的瀏覽器列表。但我的答案將適用於這些瀏覽器。 – Hoffmann
謝謝T.J.這解決了我的問題的一部分。我會需要雖然obj2根本沒有填充,所以prop1和prop1_1將需要在obj2上動態創建,並能夠在之後解析obj2的屬性樹。通過這種方式,我可以從obj2知道所有已經做成obj1的修改。但我想這是不可能的。實際上,爲了闡明我的意圖,我需要讓obj2像觀察者一樣對obj1進行修改。 – Alio
@Alio:如果你需要'obj2'來反映* obj1所做的所有更改,爲什麼不只是'obj2 = obj1;'?然後這兩個變量都指向同一個對象樹,所以(當然)通過其中一個變化所做的任何更改都可以通過另一個變量來看到,因爲它們都指向同一棵樹。如果這不起作用,我很好奇:用例是什麼? –