js数组赋值给另外一个数组变量是引用赋值,要实现值传递可以使用循环赋值、concat、slice。但是多维数组赋值,只有循环赋值靠谱,slice和concat都不靠谱了,哪个大神能否给个详细的解释,小弟感激不已。
var a = [1,2,3];
var b = a;
a.pop();
console.log(b); //1,2
/*=====================*/
var a = [[1,2],[2]];
var b = a.concat();
a[0][1] = 22;
console.log(b); //[[1,22],[2]]
//这种复制方法很靠谱
Object.prototype.clone = function() {
var o = this.constructor === Array ? [] : {};
for (var e in this) {
o[e] = typeof this[e] === "object" ? this[e].clone() : this[e];
}
return o;
};
你需要深拷贝