JavaScript深拷贝

1,JSON.parse(JSON.stringify(obj))

使用JSON实现深拷贝必须要求对象是符合JSON安全的,不了解JSON安全的自行百度。

2,lodash/underscore  _.cloneDeep()

不错

3,immutable.js  fromJS()

性能最差

4,自己写一个:

function deepClone(obj) {
var copyObj = Array.isArray(obj) ? [] : {};  // 先判断深拷贝的是对象还是数组 if (obj && typeof obj === 'object') { for (var key in obj) {
         
        
        // for in 会遍历所有可枚举属性,无论它是否是对象自身属性或者是继承原型对象的属性,因此需要过滤一下
if (obj.hasOwnProperty(key)) { if (obj[key] && typeof obj[key] === 'object') {
copyObj[key] = deepClone(obj[key]);
} else {
copyObj[key] = obj[key];
} } } }
return copyObj
}

end

上一篇:grub2的使用


下一篇:Redis网络模型的源码分析