继承模式简单分为四类:
传统继承模式:原型链继承,过多的继承了无用的属性;
构造函数:不能继承构造函数的原型,每次构造函数都要多走一个函数;
共享模式:不能随便改动自己的原型,牵一发而动全身;
圣杯模式: 共享模式多了一层中继站;
圣杯模式代码:
var inherit = (function() {
var F = function () {}; // 中间构造函数
return function(Target,Origin){
F.prototype = Origin.prototype; // 将初始的原型给中间构造函数
Target.prototype = new F(); // new一个中间构造函数的实例,将它作为目标的原型;当想要变动target的原型时,不会改变origin的原型
Target.constructor = Target(); // target 构造新的实例原型看上去还是target
Target.prototype.uber = Origin.prototype; // 在原型上留下线索
}
}());