js 实现浅拷贝

1. 利用Object.assign 实现(针对对象只有一层,没有嵌套的情况)

var obj = {name: 'zxx'};
var copy = Object.assign({}, obj)

2. 数组只有一层的话可以利用concat, slice 等实现;

var arr=[1,2, 3];
var arr1 = arr.concat();
var arr2 = arr.slice();

3.手动实现

function copy(obj){
    if(typeof obj === 'object' && target !== null){
        let cloneTarget = Object.prototype.toString.call(obj) === '[object Object]': {} : [];
        for(var key in obj){    
            //遍历obj,并且判断是obj的属性才拷贝
            if(obj.hasOwnProperty(key)){
                cloneTarget[key] = obj[key];
            }
        }
        return cloneTarget;
    }else {
        return obj;
    }
}

 

你可能感兴趣的:(js基础)