首页 > 代码库 > 寄生组合式继承
寄生组合式继承
//对象克隆function object(o){function F(){}F.prototype = o;return new F();}//原型继承function inheritPrototype(subType,superType){var prototype = object(superType.prototype);prototype.constructor = subType;subType.prototype = prototype;} function SuperType(name){this.name = name;this.colors = [1,2];} SuperType.prototype.sayName = function(){alert(this.name);} function SubType(name,age){//属性继承SuperType.call(this,name); this.age = age;} inheritPrototype(SubType,SuperType); //原型继承 SubType.prototype.sayAge = function(){alert(this.age);}
继承的关键就是 子类的原型是超类的实例引用,所以此方式本质就是将超类的原型赋给一个空的colne对象实例的原型中,然后在将此clone实例赋给子类的原型。
在调用中会走一遍克隆的原型实例和原型而已。
避免了执行2次超类构造函数。
寄生组合式继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。