我想知道这是怎么发生的!
我有一个包含一个
值的json数组
。我将其分配给名为“first”的 VAR 对象
。然后我将第一个值分配给另一个名为 'second'
的 VAR 对象。然后,我使用 push() fun
将存储在 'third'
中的另一个 json 值推送到 'second'
obj 中。据我所知,'first'
obj 应该具有 'Hello 1' 值,而 'second' obj 应该具有 ('Hello 1' & 'Hello 2' 值
。但是当我检查浏览器的控制台日志时,我可以看到两个值 ('Hello 1', 'hello 2')
或两个对象注入(inject)到两个 VAR 对象 '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);
}
我不知道是否有问题或超出我的知识范围。 请向我提供适当的解释。
js fiddle : http://jsfiddle.net/micronyks/eLLZw/
最佳答案
当您将第一个值分配给第二个变量时,您就分配了引用,因此两个变量都指向同一个对象。
如果您希望每个变量都有不同的对象,则需要进行复制
看看这个答案:https://stackoverflow.com/a/7486130/2873381
关于javascript - 使用push函数将Json对象向上注入(inject)到VAR对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24299197/