首先声明本人资质尚浅,本文只用于个人总结。如有错误,欢迎指正、共同提高。
-----------------------------------------------------------------------------------
var ary1=[1,2];
es5:
方法一:适用 单层 数组嵌套的深拷贝
var ary2 = ary1.concat();
方法二:适用 多层 数组嵌套的深拷贝
var ary2 = JSON.parse(JSON.stringify(ary1));
//此方法适用于Oject的深度拷贝,因为Array属于Oject类型,所以也适用于此处;
//需要注意的是:作为Oject的深度拷贝时,要复制的function会直接消失,所以这个方法只能用在单纯只有数据的对象。
es6:
// 方法三:适用 单层 数组嵌套的深拷贝
var ary2 = [...ary1];
// 方法四:适用 单层 数组嵌套的深拷贝
var [...ary2] = ary1;
//方法五:通过递归实现 多层 的深拷贝
function deepCopy(source){ if (typeof source != "object") { return source; } if (source == null) { return source; } var newObj = source.constructor === Array ? [] : {}; //开辟一块新的内存空间 for (var i in source) { newObj[i] = deepCopy(source[i]); } return newObj; }
如有错误,欢迎评论指正、共同提高。[握手]
欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/juneling ]