阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简单介绍克隆 JavaScript

51次阅读
没有评论

共计 856 个字符,预计需要花费 3 分钟才能阅读完成。

导读 这篇文章主要介绍了克隆 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);

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计856字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中