關(guān)于js原型的面試題講解
今天遇到關(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)建的對象,本身沒有a屬性,所以向它的原型去找,發(fā)現(xiàn)原型的a屬性的屬性值為1,故該輸出值為1;
console.log(new B().a); //new B()為構(gòu)造函數(shù)創(chuàng)建的對象,該構(gòu)造函數(shù)有參數(shù)a,但該對象沒有傳參,故該輸出值為undefined;
console.log(new C(2).a); //new C()為構(gòu)造函數(shù)創(chuàng)建的對象,該構(gòu)造函數(shù)有參數(shù)a,且傳的實參為2,執(zhí)行函數(shù)內(nèi)部,發(fā)現(xiàn)if為真,執(zhí)行this.a = 2,故屬性a的值為2;
故這三個的輸出值分別為:1、undefined、2.
以上就是小編為大家?guī)淼年P(guān)于js原型的面試題講解的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
Javascript模塊化編程(三)require.js的用法及功能介紹
這個系列的第一部分和第二部分,介紹了Javascript模塊原型和理論概念,今天介紹如何將它們用于實戰(zhàn)。我采用的是一個非常流行的庫require.js感興趣的朋友可以了解下啊2013-01-01javascript代碼運行不出來執(zhí)行錯誤的可能情況整理
js代碼運行不出來的情況在項目中經(jīng)常發(fā)生,究竟是什么原因呢?在本文整理了一些常見的情況,感興趣的各位朋友可以參考下2013-10-10JavaScript數(shù)組的快速克隆(slice()函數(shù))和數(shù)組的排序、亂序和搜索(sort()函數(shù))
JavaScript數(shù)組的快速克隆(slice()函數(shù))和數(shù)組的排序、亂序和搜索(sort()函數(shù))...2006-12-12Javascript new Date().valueOf()的作用與時間戳由來詳解
本篇文章小編為大家介紹,Javascript new Date().valueOf()的作用與時間戳由來詳解。需要的朋友參考下2013-04-04舉例說明如何為JavaScript的方法參數(shù)設(shè)置默認(rèn)值
這篇文章主要介紹了舉例說明如何為JavaScript的方法參數(shù)設(shè)置默認(rèn)值,參數(shù)默認(rèn)值的設(shè)置是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11詳解JavaScript函數(shù)callee、call、apply的區(qū)別
這篇文章主要介紹了JavaScript函數(shù)callee、call、apply的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03