[js] 浅复制
浅复制
//改变b则改变a var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67]; var b = a; b.sort(); console.log(a); console.log(b);
深复制后两者完全不干预,所以slice,concat等生成的复制,并不能复制到深层的数组或对象,所以silce,concat严格来说仍然算是浅复制。
var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67]; var b = []; b = a.map(function(e, i, arr) { return e; }) a.forEach(function(e, i, arr) { b[i] = e; }); for (var i = 0; i < a.length; i++) { b[i] = a[i]; }