简单介绍克隆,JavaScript

01-04 生活常识 投稿:想和月亮私奔
简单介绍克隆,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);

标签: # 对象 # 数组
声明:伯乐人生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系ttnweb@126.com