Javascript中的圣杯模式继承
程序员文章站
2022-06-15 12:17:18
...
实现继承的方式有很多种,比如:通过原型链方式、call/apply方式、共享原型、圣杯模式实现继承。这里主要介绍圣杯模式。其主要思想是利用一个临时函数作为中间层以及原型链的方式实现继承。
核心代码:
function inherit(Target, Origin){
function F(){};
// 下面两行顺序不能倒
F.prototype=Origin.prototype;
Target.prototype=new F();
//改变子类的constructor
Target.prototype.constuctor = Target;
//保存子类调用是哪个父类的信息 uber = super
Target.prototype.uber = Origin.prototype;
}
调用结果
Father.prototype.name="chen";
function Father(){};
function Son(){};
inherit(Son, Father);
var son = new Son();
var father = new Father();
Yahoo优化写法
//利用立即执行函数以及闭包实现
var inherit = (function(){
var F = function(){}; 闭包,形成私有化变量 因为F只是过渡作用
return function (Target, Origin){
F.prototype=Origin.prototype;
Target.prototype=new F();
Target.prototype.constuctor = Target;
Target.prototype.uber = Origin.prototype;
}
}());
上一篇: PHP实现文件下载详解_PHP
下一篇: Oracle ASM保护工具ADHU