var c = self.threeData1; var threeData2 = c.concat();
threeData2.forEach(function(iten){
iten.price = "---"
}) console.log("c",c) console.log("threeData2",threeData2)
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
原数组
treeData1
中的元素都是object,也就是引用类型。concat
方法是合并两个数组,类似将object1
赋值给object2
,此时对object1
的属性a
进行修改,此时object2
的a
属性与object1
的a属性值相同。
所以修改了第一个数组中某个元素的属性,新数组中对应元素属性也被修改。
总结起来就是值类型数据和引用类型数据的拷贝/克隆问题。
引用类型数据赋值时,是赋值此对象的指针,而并不是存储在堆中的对象。
添加回答
举报
0/150
提交
取消