關於js原型的面試題講解_基礎知識

來源:互聯網
上載者:User

今天遇到關於javascript原型的一道面試題,現分析下:

原題如下:

function A(){}function B(a){  this.a = a;}function C(a){  if(a){this.a = a;  }}A.prototype.a = 1;B.prototype.a = 1;C.prototype.a = 1; console.log(new A().a);console.log(new B().a);console.log(new C(2).a);

分析:

console.log(new A().a);  //new A()為建構函式建立的對象,本身沒有a屬性,所以向它的原型去找,發現原型的a屬性的屬性值為1,故該輸出值為1;

console.log(new B().a);  //new B()為建構函式建立的對象,該建構函式有參數a,但該對象沒有傳參,故該輸出值為undefined;

console.log(new C(2).a);  //new C()為建構函式建立的對象,該建構函式有參數a,且傳的實參為2,執行函數內部,發現if為真,執行this.a = 2,故屬性a的值為2;

故這三個的輸出值分別為:1、undefined、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.