Javascript:更改浅拷贝数组的元素会影响原始

时间:2018-04-05 16:55:02

标签: javascript

有人可以解释下面这种行为的原因吗?

在方案1中,如果我更改了数组浅层副本的元素,则原始数组会受到影响。

在方案2中,如果我直接通过为其分配一个空数组来直接更改数组的浅表副本,它就不会影响原始数组。

我在这里缺少什么?我想要的只是scenario1不改变原始数组。不能'真的找到答案......

//scenario 1
var peopleOriginal =[
  {name: 'alex', age:999 }
]
var peopleCopy = peopleOriginal.slice()
var updatedPerson = peopleCopy[0];
updatedPerson.name = 'bob';

console.log(peopleOriginal) // {name: 'bob', age:999 }

// scenario 2
var peopleOriginal2 =[
  {name: 'alex', age:999 }
]
var peopleCopy2 = peopleOriginal2.slice()
peopleCopy2 = []

console.log(peopleOriginal2) // {name: 'alex', age:999 }

0 个答案:

没有答案