文章博客

技术团队文档示例


【继承1】寄生组合式继承

<h4>寄生组合式的基本模式</h4> <pre><code>function inheritPrototype(subType,superType){ var prototype = Object(superType.prototype); //创建对象 prototype.constuctor = subType; //增强对象 subType.prototype = prototype; //指定对象 }</code></pre> <h4>寄生组合式的使用</h4> <p>这个例子的高效率体现在它只调用了一次 SuperType 构造函数,并且因此避免了在 SubType. prototype 上面创建不必要的、多余的属性。与此同时,原型链还能保持不变;</p> <pre><code class="language-javascript">function SuperType(name) { this.name = name; this.colors = ["red", "blue", "green"]; } 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); }; </code></pre> <h4>优点:</h4> <p>寄生组合式继承:集寄生式继承和组合继承的优点与一身,是实现基于类型继承的有效方式。</p>

页面列表

ITEM_HTML