今天遇到關(guān)于javascript原型的一道面試題,現(xiàn)分析下:
原題如下:
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()為構(gòu)造函數(shù)創(chuàng)建的對(duì)象,本身沒有a屬性,所以向它的原型去找,發(fā)現(xiàn)原型的a屬性的屬性值為1,故該輸出值為1;
console.log(new B().a); //new B()為構(gòu)造函數(shù)創(chuàng)建的對(duì)象,該構(gòu)造函數(shù)有參數(shù)a,但該對(duì)象沒有傳參,故該輸出值為undefined;
console.log(new C(2).a); //new C()為構(gòu)造函數(shù)創(chuàng)建的對(duì)象,該構(gòu)造函數(shù)有參數(shù)a,且傳的實(shí)參為2,執(zhí)行函數(shù)內(nèi)部,發(fā)現(xiàn)if為真,執(zhí)行this.a = 2,故屬性a的值為2;
故這三個(gè)的輸出值分別為:1、undefined、2.
以上就是小編為大家?guī)淼年P(guān)于js原型的面試題講解的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持武林網(wǎng)~
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注