JavaScript 进阶营

对象的拷贝(浅拷贝与深拷贝)

2018-10-11  本文已影响18人  这个超人不会飞阿

深拷贝与浅拷贝的主要区别就是对引用类型的拷贝问题.
对象的拷贝可以有3种实现方法

function copyDeep(obj) {
    var newObj = Array.isArray(obj) ? []:{};
    if(obj && typeof obj == 'object') {
        for ( var key in obj) {
            if(obj[key] && typeof obj[key]  == 'object') {
                newObj[key] = copyDeep(obj[key]);
            }else {
                newObj[key] = obj[key];
            }
        }
    }
  return newObj;
}
var a = [1,[1,2,3],'zzz'];
var b = copyDeep(a);
b[1][0]=99;
console.log(a);
image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读