码迷,mamicode.com
首页 > 其他好文 > 详细

寄生组合式继承

时间:2019-05-22 11:28:51      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:覆盖   obj   就是   book   https   console   这一   htm   function   

  function inherObj(o){
      function F(){}
      F.prototype=o;
      return new F();
    }
    function inherPro(SubClass,SuperClass){
      var p = inherObj(SuperClass.prototype);
//这一步是为了把构造函数指向SubClass实际对象 p.constructor
= SubClass; SubClass.prototype=p; } var book={ name:js book, alikeBook:[css book,html book] }; function SuperClass(name){ this.name=name; this.colors=[red,blue,green]; } SuperClass.prototype.getName=function(){console.log(this.name)}; function SubClass(name,time){ SuperClass.call(this,name); this.time=time; } inherPro(SubClass, SuperClass);//这一步就是用SubClass的原型去继承SuperClass的原型,继承的核心代码 SubClass.prototype.getTime=function(){ console.log(this.time); }
//如果子类想重写父类,那就自己覆盖父类同名属性
      // SubClass.prototype.getName = function () { console.log(this.name,‘重写‘) };
var ins1 = new SubClass(js book, 2014);
    var ins2 = new SubClass(css book,2013);

与java逻辑相同

就是继承父类,然后子类可以扩展父类

技术图片

https://www.cnblogs.com/aaronchu/p/6168378.html

 

寄生组合式继承

标签:覆盖   obj   就是   book   https   console   这一   htm   function   

原文地址:https://www.cnblogs.com/dianzan/p/10904460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!