最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript淺層克隆、深度克隆對比及實例解析

 更新時間:2020年02月09日 11:08:08   作者:shumeihh  
這篇文章主要介紹了javascript淺層克隆、深度克隆對比及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了javascript淺層克隆、深度克隆對比及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1、淺層克隆, (引用值改變, 兩個都一起變)

var obj = {
        name : 'xiaoming',
        age : 12,
        children : ['mimi','lili','rokey']
      }
      var obj2 = {};

      function clone(origin, target) {
        var target = target || {};
         for(var prop in origin) {
           target[prop] = origin[prop];
         }
         return target;
      }

      clone(obj, obj2);

2、深度克隆 (只考慮數(shù)組和對象)

(1)判斷是不是原始值

?。?)判斷是數(shù)組還是對象 Object.prototype.toString.call([]) = '[object Array]' Object.prototype.toString.call({}) = '[object Object]'

(3)建立相應的數(shù)組和對象

(4)遞歸

function deepClone(origin, target) {
        var target = target || {},
          toStr = Object.prototype.toString,
          arrStr = '[object Array]';
        for(var prop in origin) {
          if(origin.hasOwnProperty(prop)) {   //判斷是不是對象自帶的屬性
            if(origin[prop] !== 'null' && typeof(origin[prop]) == 'object') {
              if(toStr.call(origin[prop]) == arrStr) {
                target[prop] = [];
              }else {
                target[prop] = {};
              }
              deepClone(origin[prop], target[prop]);
            }else {
              target[prop] = origin[prop];
            }
          }
        }
        return target;
      }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

盐山县| 广宁县| 丰城市| 宜兴市| 信丰县| 庆安县| 藁城市| 都昌县| 隆化县| 梁河县| 来凤县| 鹰潭市| 红桥区| 六枝特区| 永城市| 河间市| 巫溪县| 安丘市| 和政县| 永顺县| 从化市| 汽车| 宜城市| 尖扎县| 彭州市| 萨嘎县| 日照市| 涞源县| 麻江县| 垣曲县| 海盐县| 保康县| 汉川市| 宿松县| 五大连池市| 沁阳市| 灵宝市| 永德县| 海南省| 新蔡县| 新泰市|