JavaScript如何实现深拷贝
在项目实际开发中,常会遇到浅拷贝的问题。下面是对对象中的对象和数组进行了深拷贝的实现:
function clone(o){
var k, ret= o, b;
if(o && ((b = (o instanceof Array)) || o instanceof Object)) {
ret = b ? [] : {};
for(k in o){
if(o.hasOwnProperty(k)){
ret[k] = clone(o[k]);
}
}
}
return ret;
}
上面“深拷贝”的应用:
var carObj = {
color: ['red']
};
var carObj1 = clone(carObj);
carObj.color.push('blue');
继续学习研究《JavaScript设计模式》第4章4.3节中 Douglas Crockford 的“原型式继承”。
浙公网安备 33010602011771号