js繼承之四(寄生組合式繼承)

來源:互聯網
上載者:User

標籤:組合   http   繼承建構函式   highlight   prototype   .com   var   alt   mod   

 

組合式繼承儘管很優秀,但是還是有一個地方算完美調用父類建構函式調用了兩次也就是執行個體化了兩個父類對象

從這個結果可以發現,父類執行個體中的屬性和方法其實子類已經有了,再添加進來未免多此一舉;所以這就是最佳化的點

function CarModel(c){      this.color=c||"白色";      this.arr=[1,2,3];      this.getColor=function(){        console.log(‘我的顏色是‘+this.color);      }}CarModel.prototype.test="lla";function Car(brand){ CarModel.call(this);//借用建構函式    繼承建構函式的屬性 this.brand=brand;     this.getBrand=function(){      console.log(‘我的品牌是‘+this.brand);      }}Car.prototype=Object.create(CarModel.prototype); //原型鏈模式  繼承原型對象上的屬性/*(function(){  // 建立一個沒有執行個體方法的類  var Super = function(){};  Super.prototype = CarModel.prototype;  //將執行個體作為子類的原型  Car.prototype = new Super();})();*/var car1=new Car("豐田");console.log(car1);

 上面有兩種方式,注釋掉的也是一種方式效果:

父類沒有執行個體化屬性了

 

js繼承之四(寄生組合式繼承)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.