前端面試題之閉包,原型作用域鏈,繼承,面向?qū)ο?

一、閉包

閉包就是因?yàn)樵诤瘮?shù)中可以訪問全局變量,但是全局中無法訪問局部變量, 所以如果我們需要溝通全局和局部的話,需要利用在函數(shù)的內(nèi)部再次生成一個(gè)函數(shù),并且返回需要獲取的變量,在我們需要反問局部變量時(shí),只需要調(diào)用一下函數(shù)運(yùn)行后的返回值即可獲取到局部變量。

二、原型作用域鏈

原型就相當(dāng)于是一個(gè)模具,用于生產(chǎn)實(shí)例對(duì)象,原型對(duì)象有指針指向構(gòu)造函數(shù),實(shí)例對(duì)象有指針指向原型對(duì)象,所以形成了一條原型鏈,原型鏈?zhǔn)莏s實(shí)現(xiàn)繼承的方式。原型是js實(shí)現(xiàn)面向?qū)ο蟮姆绞剑琷s就是基于原型的面向?qū)ο?。作用域就是變量或者函?shù)能作用的范圍,作用域鏈則是需要一個(gè)變量,則會(huì)依次往上層函數(shù)尋找直到全局作用域。

三、繼承

繼承就是讓一個(gè)引用類型繼承另外一個(gè)引用類型的屬性和方法。
構(gòu)造函數(shù),原型對(duì)象,實(shí)例對(duì)象的關(guān)系是:每個(gè)構(gòu)造函數(shù)都有一個(gè)原型對(duì)象,原型對(duì)象都有一個(gè)指向構(gòu)造函數(shù)的指針,實(shí)例對(duì)象有指向原型對(duì)象的指針。
繼承有6種方式,分別是:
1.原型鏈繼承:
將構(gòu)造函數(shù)的原型設(shè)置為另外一個(gè)構(gòu)造函數(shù)的實(shí)例對(duì)象,這樣就可以繼承另外一個(gè)構(gòu)造函數(shù)的屬性和方法,繼續(xù)往上,則形成原型鏈,缺點(diǎn)是不能多次繼承。
2.借用構(gòu)造函數(shù)繼承:
通過call改變構(gòu)造函數(shù)的this指向,再加入需要的屬性或方法再繼承
3.組合繼承
不僅原型鏈繼承,同時(shí)也使用構(gòu)造函數(shù)繼承,缺點(diǎn)是生成了兩個(gè)實(shí)例。
4.原型式繼承:
返回一個(gè)構(gòu)造好的實(shí)例對(duì)象,缺點(diǎn)是不能多次繼承。
5.寄生式繼承:
在原型式繼承后得到對(duì)象后再次去對(duì)這個(gè)對(duì)象進(jìn)行處理后去返回新的實(shí)例對(duì)象。
6.寄生組合式繼承:
通過寄生的方式,砍掉父類的實(shí)例屬性。
7.類繼承:
定義一個(gè)類,在constractor中去定義屬性,類中定義方法,通過new獲取新的實(shí)例對(duì)象,子類通過extends繼承父類,通過super()調(diào)用父類的constractor獲取屬性和方法,可以在子類構(gòu)造函數(shù)添加新的屬性或方法。

四、面向?qū)ο?/h2>

在前端中,萬事萬物皆對(duì)象,面向?qū)ο笫且环N編程方法或思想,一個(gè)對(duì)象我們?cè)趈s中可以理解為一個(gè)類,類有屬性和方法,可以繼承,也分為私有或公有。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容