1、javascript深度克隆:
//注意这里的对象包括object和array
function cloneObject(obj){
var o = obj.constructor === Array ? [] : {};
for(var key in obj){
if(obj.hasOwnProperty(key)){
o[key] = typeof obj[key] === "object" ? cloneObject(obj[key]) : obj[key];
}
}
return o;
}
Object.prototype.cloneObject=function(){
var o=this.constructor===Array?[]:{};
for(var key in this){
if(this.hasOwnProperty(key)){
o[key] = typeof this[key] === "object" ? cloneObject(this[key]) : this[key];
}
}
return o;
}
//这个方法只能用于被拷贝的对象中元素中没有引用类型的值。
Object.prototype.cloneObject=function(){
var str=JSON.stringify(this);
return JSON.parse(str);
}
2、javascript的继承实现:
第一种 prototype 引用型原型继承
第二种 类继承 属性抄写
第三种 类继承 对象冒充
第四种 原型抄写
第五种 混合方式
混合了call方式、原型链方式