Javascript 为什么一个数组键中的设置值是在另一个键中设置的?

Javascript 为什么一个数组键中的设置值是在另一个键中设置的?,javascript,object,Javascript,Object,我有一个包含各种对象的对象数组来保存UI值。我希望有一个按钮,以便在整个数组中复制元素0的值。然而,我注意到,设置一个设置设置了所有设置。下面是一个不使用任何循环的示例: console.log('manual 3: ', lis[3].spacer.divider.type); // prints 'none' lis[1].spacer.divider.type = 'bananas'; console.log('manual 3: ', lis[3].spacer.divider.type

我有一个包含各种对象的对象数组来保存UI值。我希望有一个按钮,以便在整个数组中复制元素0的值。然而,我注意到,设置一个设置设置了所有设置。下面是一个不使用任何循环的示例:

console.log('manual 3: ', lis[3].spacer.divider.type); // prints 'none'
lis[1].spacer.divider.type = 'bananas';
console.log('manual 3: ', lis[3].spacer.divider.type); // prints 'bananas'

我完全搞不懂如何设置lis[1]和lis[3]

它们都必须是对同一对象的引用

如果它们是DOM节点,则可以使用来复制它们。 注意IE bug-它有一个不正确克隆的习惯(例如,克隆
不会维护选定的索引)


有关克隆对象的信息,请参见。

因为变量是引用变量,它们都引用同一个对象,因此看起来更改一个会更改所有对象,实际上它们都是相同的基础对象


如果你想要很多独特的数组,它们都应该被创建为一个新的数组,或者是彼此的克隆。谢谢它没有点击我,因为上面所有的其他对象(间隔,lis)都是唯一的。我意外地将divider设置为成员默认的间隔符,而不是返回默认值的函数

谢谢