Discuss
/
JavaScript
/
.slice复制
.slice复制
Topic source因为数组是引用类型,如果直接像这样aCopy = arr;
把arr赋值给aCopy的话,它们实际上是指向同一个数组对象,此时aCopy === arr;
会返回true
,因为这时候,堆上只有一个对象,而aCopy和arr同时指向这个唯一的对象
而使用aCopy = arr.slice();
这样的语句,则是把arr数组对象复制一份,然后让aCopy指向这个新对象,此时aCopy和arr指向的数组对象除了含有相同的元素外,就没有任何关系了。此时堆上有两个数组对象,它们的内容相同。aCopy和arr分别指向这两个对象
此时比较aCopy和arr的相等性,返回false
,因为它们指向的是不同的对象(虽然对象的内容相同)
- 1
左左若木
这个为什么是Flase呢?