2014-05-23 78 views
0

opener`在我父窗口的子窗口中。爲什麼父窗口對象通過JavaScript中的子窗口更新?

在我的父窗口的代碼是

var a ={"test":""}; 
var b=a; 
在我的子窗口

我的代碼是

top.opener.b.test="set by child"; 

現在我關閉這個子窗口

現在,當我看到a.test它給了我set by child我不知道我什麼時候更新b爲什麼它是更新的a

我怎麼能由a

重置b請幫我傢伙。

謝謝...

+0

http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language – adeneo

回答

2

因爲b,實際上並不是a副本,它是a參考。 這意味着當您參考b時,您確實參考了a

在JavaScript中的對象是如何工作的更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

+0

那我怎麼能通過b的副本 –

+0

這個問題已經回答了很多,這是最流行的答案:http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a- javascript-object另外不同的框架和庫都有克隆對象的方法。 –

+0

感謝它對我的作品 –