[JavaScript] 浅拷贝

slice操作并不改变原来的数组,会对截取的数组进行浅拷贝,返回一个新数组。

浅拷贝指的是,对值类型的对象进行复制值,
对引用类型的对象复制其引用,并不新建一个对象。

例如:

m=[1,2,{a:3}]
n=m.slice(1)
console.assert(n[0]===2)
console.assert(m[1]===2)
n[0]=5
console.assert(n[0]===5)
console.assert(m[1]===2)

console.assert(n[1].a===3)
console.assert(m[2].a===3)
n[1].a=5
console.assert(n[1].a===5)
console.assert(m[2].a===5)

你可能感兴趣的:([JavaScript] 浅拷贝)