针对引用数据类型(数组/对象)的标准深拷贝:
function deepClone(source){
const targetObj = source.constructor === Array ? [] : {};
for(let key in source){
if(source.hasOwnProperty(key)){
if(source[key] && typeof source[key] === 'object'){
targetObj[key] = deepClone(source[key]);
}else{
targetObj[key] = source[key];
}
}
}
return targetObj;
}
用JSON的简单深拷贝:
let list = [
{name : 'a', age : 22},
{name : 'b', age : 21},
{name : 'c', age : 18}
];
let newList = JSON.parse(JSON.stringify(list));