有人可以解释下面这种行为的原因吗?
在方案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 }