打好基础,查漏补缺
基础是重中之重
深度克隆
写了个深度克隆的方法(只考虑引用类只有数组和对象两种)
var obj = {
name: 'To',
age: 24,
sex: 'male',
cars: ['BMW', 'audi'],
girlfriend: {
name: 'shanshan',
age: 24,
gender: 'female'
}
}
var obj1 = {}
function clone(origin, target) {
var temp = target || {}
if (typeof (origin) != 'object' && origin =='null') { // 如果是原始值或者null的话
temp = origin
} else {
for (var k in origin) {
if (origin.hasOwnProperty(k)) { // 不复制原型链上的属性
if (Object.prototype.toString.call(origin[k]).indexOf('Array') >= 0) { // 如果是数组
temp[k] = []
} else { // 对象
temp[k] = {}
}
arguments.callee(origin[k], temp[k]) // 如果这行 temp[k] = clone(origin[k], temp[k]) 那么生效
}
}
}
return temp
}