2014-06-19 53 views
0

我想知道它是怎么发生的!Json对象通过推送函数向上注入VAR对象

我有一个json array包含one值。我将它分配给VAR obj named 'first'。然后,我将第一个值分配给名为'second'的其他VAR obj。然后,我将存储在'third'中的另一个json值与push() fun一起推入'second' obj。据我所知,'first'obj应该有'Hello 1' value & 'second' obj should have ('Hello 1' & 'Hello 2' values。但是,当我检查浏览器的我的控制台日志,我可以看到注入到这两个VAR两个值('Hello 1', 'hello 2')或两个对象的对象'first' & 'second'.

function jsonarray() 
{ 
var first=[{name:"Hello 1"}] 

var second=first; 

var third=[{name:"Hello 2"}] 

second.push(third); 

console.log(third); 
console.log(second); 
console.log(first); 
} 

我不知道什么是错的还是我的知识。 请以适当的解释更新我。

爵士小提琴: http://jsfiddle.net/micronyks/eLLZw/

回答

1

当你第一次分配值,第二VAR,你assing的引用,所以这两个变量指向同一个对象。 如果你想为每个变量的不同对象,你需要做一个副本
看看这个答案:https://stackoverflow.com/a/7486130/2873381

+0

感谢您的回复。得到它了... – micronyks