js的继承与克隆
原型上的继承
//圣杯模式的继承 var inherit = (function(){ var F = function(){}
return function(Target,Origin){
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constructor = Target;
Target.prototype.uber = Origin.prototype; //uber:继承与谁
}
})()
深度克隆
function deepClone (origin,target) { var target = target || {};
var toStr = Object.prototype.toString; //来判断是否是数组
var arrStr = '[object Array]';
for ( let prop in origin ){
//判断是否是自身上的属性
if( origin.hasOwnProperty(prop) ){
if(origin[prop] !=='null' && typeof origin[prop] =='object'){
target[prop] = toStr.call(origin[prop]) ===arrStr ? []:{};
deepClone(origin[prop],target[prop])
}else{
target[prop] = origin[prop]
}
}
}
return target
}

浙公网安备 33010602011771号