为什么需要深拷贝?在js中,基本数据类型的传递方式为值传递,对象的传递方式为引用传递
方法一(简单粗暴):
newArray= [].concat(JSON.parse(JSON.stringify(_oldArray)));
方法二:
newArray=Array.prototype.map.call(oldArray,function(elem){
return deepCopy(elem);
})||[];
function deepCopy(obj){
if(typeof obj != 'object'){
return obj;
}
var newobj = {};
for ( var attr in obj) {
newobj[attr] = deepCopy(obj[attr]);
}
return newobj;
}
网友评论