炫意html5
最早CSS3和HTML5移动技术网站之一

简单介绍克隆 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);

炫意HTML5 » 简单介绍克隆 JavaScript

Java基础教程Android基础教程