由于Array.slice()不进行深度复制,因此它不适用于多维数组:
var a =[[1], [2], [3]];var b = a.slice();b.shift().shift();// a is now [[], [2], [3]]
请注意,尽管我在
shift().shift()上面使用过,但要点只是 _
b[0][0]包含指向的指针
a[0][0]_而不是值。
同样
delete(b[0][0])也将导致
a[0][0]删除,
b[0][0]=99并将值更改
a[0][0]为99。
当将true值作为初始参数传递时,jQuery的
extend方法 会 执行深层复制:
var a =[[1], [2], [3]];var b = $.extend(true, [], a);b.shift().shift();// a is still [[1], [2], [3]]


![(深入)使用jQuery复制数组[重复] (深入)使用jQuery复制数组[重复]](http://www.mshxw.com/aiimages/31/470600.png)
