国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:44:18
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了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、深度克隆 (只考慮數組和對象)

(1)判斷是不是原始值

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

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

(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;      }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 龙川县| 旺苍县| 北辰区| 尖扎县| 河津市| 承德县| 瓮安县| 张家川| 双桥区| 阿图什市| 昭平县| 泗水县| 德钦县| 蒙自县| 天柱县| 金沙县| 来宾市| 唐海县| 辽中县| 蒙城县| 永年县| 绥滨县| 留坝县| 榆树市| 衡山县| 湟源县| 汶川县| 陇西县| 玛纳斯县| 庄河市| 怀来县| 集安市| 安乡县| 施甸县| 北碚区| 苗栗市| 濮阳市| 比如县| 晴隆县| 松滋市| 金川县|