星空网 > 软件开发 > Java

JS继承之寄生类继承

原型式继承

其原理就是借助原型,可以基于已有的对象创建新对象。节省了创建自定义类型这一步(虽然觉得这样没什么意义)。

模型

function object(o){ function W(){ } W.prototype = o; return new W();}

ES5新增了Object.create()方法规范化了原型式继承。即调用方法为:Object.create(o);

适用

只想让一个对象跟另一个对象建立继承这种关系的时候,可以用Object.create();这个方法,不兼容的时候,则手动添加该方法来兼容。

寄生式继承

寄生式继承是原型式继承的加强版。

模型

function createAnother(origin){ var clone=object(origin); clone.say=function(){  alert('hi') } return clone;

即在产生了这个继承了父类的对象之后,为这个对象添加一些增强方法。

寄生组合式继承

实质上,寄生组合继承是寄生式继承的加强版。这也是为了避免组合继承中无可避免地要调用两次父类构造函数的最佳方案。所以,开发人员普遍认为寄生组合式继承是引用类型最理想的继承范式。

基本模式

function inheritPrototype(SubType,SuperType){ var prototype=object(SuperType.prototype); prototype.constructor=subType; subType.prototype=prototype;}

这个object是自定义的一个相当于ES5中Object.create()方法的函数。在兼容性方面可以两个都写。

兼容写法

    function object(o){      function W(){      }      W.prototype=o;      return new W;    }    function inheritPrototype(SubType,SuperType){      var prototype;      if(typeof Object.create==='function'){      prototype=Object.create(SuperType.prototype);      }else{      prototype=object.create(SuperType.prototype);      }
prototype.constructor=SubType; SubType.prototype=prototype; }

  

  

  

       

  




原标题:JS继承之寄生类继承

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊推迟2021年物流涨价,纽约拟向每个包裹征收3美元附加费:https://www.ikjzd.com/articles/138131
香港渣打银行个人户——短期存款开户:https://www.ikjzd.com/articles/138132
物流瘫痪!50+国禁英航班,所有到欧洲货物无法发出:https://www.ikjzd.com/articles/138133
为什么跨境电商卖家大多选择注册美国公司?:https://www.ikjzd.com/articles/138134
维护外贸客户关系的技巧!:https://www.ikjzd.com/articles/138135
亚马逊大规模下架停售!原因找到了:https://www.ikjzd.com/articles/138136
仿品独立站从建站、推广、收款到底怎么玩?:https://www.kjdsnews.com/a/1836312.html
仿品独立站从建站、推广、收款到底怎么玩?:https://www.goluckyvip.com/news/186215.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流