美文网首页
深复制与浅复制

深复制与浅复制

作者: 别让我一个人醉_1fa7 | 来源:发表于2017-11-18 14:47 被阅读0次

    概念:

    • 浅复制与深复制都是只针对对象,数组,这些复杂类型。
    • 浅复制指的是复制一个对象的一层属性,如果对象,数组内嵌套有对象或数组则复制他们的指针,得到的新对象或数组在第一层次得属性上是独立的,但是在嵌套属性上是相互关联的。
    • 深复制是复制一个对象、数组的所有层级,得到的新对象、数组与原对象属性相同,但完全独立。

    实现:

    • 浅复制
    function shadowcopy(obj){
        var newObj = null;
        for(key in obj){
            newObj[key] = obj[key];
        };
        return newObj;
    }
    
    • 深复制
    function deepCopy(obj){
        var newObj = null;
        for(key in obj){
          if(typeof(obj[key])=="object"){
              newObj.key = deepCopy(obj[key])
          }else{
                  newObj[key] = obj[key]
              };
        };
        return newObj;
    }
    
    • 用 json 对象实现深复制
    var newObj = JSON.parse(JSON.stringfy(obj);
    

    相关文章

      网友评论

          本文标题:深复制与浅复制

          本文链接:https://www.haomeiwen.com/subject/zmmevxtx.html