js繼承之一(借用建構函式)

來源:互聯網
上載者:User

標籤:副本   如何   拷貝   div   對象   rip   傳遞參數   on()   color   

現在,已經知道了原型對象,原型鏈的實現,原型鏈式繼承的缺陷;那麼如何避免這個缺陷?

在子類中借用父類的建構函式
//定義一個CarModel類function CarModel(c){      this.color=c||"白色";      this.arr=[1,2,3];      this.getColor=function(){        console.log(‘我的顏色是‘+this.color);      }}//car類有自己的屬性,比如品牌function Car(brand){ CarModel.call(this);//借用父類的建構函式 this.brand=brand;     this.getBrand=function(){      console.log(‘我的品牌是‘+this.brand);      }}//car類需要繼承自carmodel,汽車共有的屬性color放在carmodel上Car.prototype=new CarModel();var car1=new Car("豐田");console.log(car1);

  結果:

 

達到的效果相當於,子類拷貝了一份父類的方法和屬性,加上自己的方法和屬性;

優點:

  1. 解決了原型鏈式繼承中,修改父類引用屬性的問題
  2. 能夠向父類建構函式傳遞參數了

缺點:

  1. 執行個體並不是父類的執行個體,只是子類的執行個體!
  2. 無法實現函數複用,每個子類都有父類執行個體函數的副本

 

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.