Javascript 深拷贝与浅拷贝

153 阅读1分钟

www.w3cschool.cn/article/8b3…

  • 浅拷贝
  • 依然还会有对象的引用
function copy(obj){
    var objCopy = {};
    for(var key in obj){
        objCopy[key] = obj[key];
    }
    return objCopy;
}


var person = {name: "Jason", age: 18, car: {brand: "Ferrari", type: "430"}};
var personCopy = copy(person);
  • 深拷贝
  • 只有Number, String, Boolean, Array这几种类型,无其他类型
  • 如果需要其他类型,可以自己做转换
function jsonClone(obj) {
    return JSON.parse(JSON.stringify(obj));
}
var clone = jsonClone({ a:1 });