JS深拷贝
// 深拷贝
export function deepClone(obj) {
if (obj === null) return null
if (typeof obj !== 'object') return obj
if (obj.constructor === Date) return new Date(obj)
if (obj.constructor === RegExp) return new RegExp(obj)
var newObj = new obj.constructor() //保持继承链
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
//不遍历其原型链上的属性
var val = obj[key]
newObj[key] = typeof val === 'object' ? arguments.callee(val) : val // 使用arguments.callee解除与函数名的耦合
}
}
return newObj
}
本文来自博客园,作者:RHCHIK,转载请注明原文链接:https://www.cnblogs.com/suihung/p/16531353.html