良许Linux教程网 干货合集 讲解一下克隆 JavaScript

讲解一下克隆 JavaScript

这篇文章主要介绍了克隆 JavaScript,克隆又有浅克隆与深克隆,文章围绕JavaScript浅克隆与深克隆的相关资料展开具体内容,需要的朋友可以参考一下

讲解一下克隆 JavaScript

1、浅克隆

浅克隆无法copy数组和对象

var obj = {
   name : "abs",
   age : '18',
   sex : 'male'
}
var obj1 = {}
function clone(Origin,target) {
   target = target || {};//防止用户不输入target
   for(var k in Origin){
       target[k] = Origin[k];
   }
}
clone(obj,obj1);

2、深克隆

先判断它是什么,原始值,数组还是对象,分别处理

遍历对象

是原始值直接copy

不是原始值判断是数组还是对象

是数组建空数组

是对象建空对象

建立了之后再遍历一遍原始对象或数组里是啥

递归

var obj = {
   name : 'lin',
   age : '18',
   sex : 'male',
   card : [1,2,3,4],
   wife : {
       name : 'bcsds',
       son : {
           name : 'aaa'
       },
       age : '23'
   }
}
var obj1 = {}
//原始值和对象数组typeof返回值有区别
function deepClone(origin,target) {
   target = target || {};
   for(var k in origin) {
       if(origin.hasOwnProperty(k)){
           if(typeof(origin[k]) == 'object') {
               if(Object.prototype.toString.call(origin[k]) == '[object Array]') {
                   target[k] = [];
               }else {
                   target[k] = {};
               }
               deepClone(origin[k],target[k]);
           }else {
               target[k] = origin[k];
           }
       }
   }
}
deepClone(obj,obj1);

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部