方法一:
利用JSON.stringify()转换为json字符串的方式实现
JSON.parse(JSON.stringify())
利用以上方法可以深拷贝Array、Object类型数据,但此方法有一个缺点,如果原Array、Object数据里面含有function方法,则function数据会被丢弃,无法完全拷贝。
方法二:
利用递归原理写函数实现
function cloneObject(obj) {
var newObj = {} //如果不是引用类型,直接返回
if (typeof obj !== 'object') {
return obj
}
//如果是引用类型,遍历属性
else {
for (var attr in obj) {
//如果某个属性还是引用类型,递归调用
newObj[attr] = cloneObject(obj[attr])
}
}
return newObj
}
复杂数据深拷贝推荐此方法