2014-05-23 49 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

感谢它对我的作品 –