【发布时间】:2018-05-06 23:06:14
【问题描述】:
我对 js 的“删除”运算符有点困惑。
例如
var data = {
list : [a, b, c]
}
var temp = data;
console.log(temp.list[2]); //Result 'c'
console.log(data.list[2]); //Result 'c'
delete temp.list[2];
console.log(temp.list[2]); //Result undefined
console.log(data.list[2]); //Result undefined why?
在这种情况下,
我刚刚删除了temp.list[2],但data.list[2] 也显示未定义。
'delete' 操作符是否跟踪数组地址并删除其中的数据?
这就是为什么data.list[2] 也未定义? (因为data.list[2] 有地址,而不是实际数据本身)
我认为有解释。你能帮帮我吗?
【问题讨论】:
-
与删除无关...这与 temp 和 data 引用同一个数组有关
-
查看Copying an array by value in Javascript 了解为什么
var temp=data;不制作独立副本。
标签: javascript arrays object memory