国产探花免费观看_亚洲丰满少妇自慰呻吟_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;      }

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

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

圖片精選

主站蜘蛛池模板: 建宁县| 九寨沟县| 邯郸市| 寻甸| 桐庐县| 贵州省| 扶余县| 贵定县| 江源县| 晋州市| 晋江市| 呼伦贝尔市| 沿河| 玛沁县| 利川市| 临邑县| 龙门县| 屏南县| 曲沃县| 绿春县| 东乌珠穆沁旗| 元朗区| 铁岭市| 惠来县| 临潭县| 萝北县| 八宿县| 囊谦县| 临安市| 东港市| 孝义市| 普定县| 兖州市| 和平区| 社旗县| 通渭县| 赤壁市| 福泉市| 德保县| 庆阳市| 昌图县|