JavaScript: 通过另一个引用变量访问时无法通过重新分配清除数组
JavaScript: Can't clear array through reassignment when accessing through another reference variable
我找到了解决方法 - 需要直接访问原始数组变量,但我想了解为什么会这样。
var array = ["hello"];
var testObject = {arr: array};
testObject.arr = [];
console.log(array) results in ["hello"] and not [] as expected.
但是,这个方法确实清除了数组
while (testObject.arr.length > 0) {
testObject.arr.splice(0, 1);
}
console.log(array) results in [] as expected.
谁能解释一下这是怎么回事?谢谢!
哦,另外,如果我 testObject.arr.push("testing"),它会按预期工作....
我只是不明白为什么尝试重新分配数组会失败。
testObject.arr = []
将 testObject
的 arr
属性 - 设置为一个全新的数组。它不会对先前分配给 属性 的值做任何事情。它正在变异 testObject
.
然而,testObject.arr.splice
会在 属性 处改变数组 。
我找到了解决方法 - 需要直接访问原始数组变量,但我想了解为什么会这样。
var array = ["hello"];
var testObject = {arr: array};
testObject.arr = [];
console.log(array) results in ["hello"] and not [] as expected.
但是,这个方法确实清除了数组
while (testObject.arr.length > 0) {
testObject.arr.splice(0, 1);
}
console.log(array) results in [] as expected.
谁能解释一下这是怎么回事?谢谢!
哦,另外,如果我 testObject.arr.push("testing"),它会按预期工作....
我只是不明白为什么尝试重新分配数组会失败。
testObject.arr = []
将 testObject
的 arr
属性 - 设置为一个全新的数组。它不会对先前分配给 属性 的值做任何事情。它正在变异 testObject
.
testObject.arr.splice
会在 属性 处改变数组 。