2018年12月17日
JavaScript 深拷贝
function deepCopy(source) {
var sourceCopy = source instanceof Array ? [] : {};
for (var item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item];
}
return sourceCopy;
}
上面的方法可以递归调用,解析对象或者数组的嵌套。
完善,可以通过自解析函数把上面的函数暴漏给window对象
(function (win) {
win.deepCopy = function deepCopy(source) {
var sourceCopy = source instanceof Array ? [] : {};
for (var item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item];
}
return sourceCopy;
}
}
)(window);