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 的“原型式继承”。