数组和对象都是引用类型,因此有深、浅拷贝之分,数组深拷贝可参考https://blog.csdn.net/fungleo/article/details/54931379
提醒一下的是数组中如果还有其他引用类型的数据,则需要递归深拷贝,否则修改数组中的引用类型还是会影响原数组中的引用类型,比如
var a = [{id:1}];
var b = a.slice(0);
b.id = 0;
console.log(a) // [{id:0}]
可采用以下深拷贝的方法
function objDeepCopy(source) {
var sourceCopy = source instanceof Array ? [] : {};
for (var item in source) {
sourceCopy[item] =
typeof source[item] === "object"
? objDeepCopy(source[item])
: source[item];
}
return sourceCopy;
}
jquery可采用$.extend实现深拷贝 ,用法文档为http://www.runoob.com/jquery/misc-extend.html,比如深拷贝a到b
b = $.extend(true, [], a)
网友评论