JavaScript中的数组也是一个 对象 ,变量仅包含 对 对象的 引用 ,而不是对象本身。因此,两个变量都引用 同一 对象。
您与数字示例的比较是不正确的。您将新值分配给copyOfMyNumber
。如果您为其分配新值,copyOfMyArray
则也不会更改myArray
。
您可以使用slice
docs创建数组的副本:
var copyOfMyArray = myArray.slice(0);
但是请注意,这只会返回浅表副本,即不会克隆数组中的对象。
为什么在JavaScript中更改数组会影响数组的副本?
JavaScript中的数组也是一个 对象 ,变量仅包含 对 对象的 引用 ,而不是对象本身。因此,两个变量都引用 同一 对象。
您与数字示例的比较是不正确的。您将新值分配给copyOfMyNumber
。如果您为其分配新值,copyOfMyArray
则也不会更改myArray
。
您可以使用slice
docs创建数组的副本:
var copyOfMyArray = myArray.slice(0);
但是请注意,这只会返回浅表副本,即不会克隆数组中的对象。