数组的浅拷贝,
可用concat、slice返回一个新数组的特性来实现拷贝
var arr = ['old', 1, true, null, undefined];
var new_arr = arr.concat...,就会只拷贝对象和数组的引用,这样我们无论在新旧数组进行了修改,两者都会发生变化。...数组的深拷贝
方法一:JSON.stringify()不仅可拷贝数组还能拷贝对象(但不能拷贝函数,也不能解决循环引用问题)
var arr = ['old', 1, true, ['old1', 'old2...方法三,结合map(将方法二的递归改造,解决循环引用问题):
var deepCopy = function (target, map = new Map()) {
// 只拷贝对象
if (typeof...[] : {
};
// 将新的结果存到容器中
map.set(target, result);
for (var key in target) {
// 遍历obj,并且判断是obj的属性才拷贝