教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

js中的原型(prototype)是什么?如何理解?

更新時(shí)間:2021年05月18日15時(shí)04分 來源:傳智教育 瀏覽次數(shù):

JavaScript是一種通過原型實(shí)現(xiàn)繼承的語言與別的高級語言是有區(qū)別的,像java,C#是通過類型決定繼承關(guān)系的,JavaScript是的動(dòng)態(tài)的弱類型語言,總之可以認(rèn)為JavaScript中所有都是對象,在JavaScript中,原型也是一個(gè)對象,通過原型可以實(shí)現(xiàn)對象的屬性繼承,JavaScript的對象中都包含了一個(gè)“prototype”內(nèi)部屬性,這個(gè)屬性所對應(yīng)的就是該對象的原型。

“prototype”作為對象的內(nèi)部屬性,是不能被直接訪問的。所以為了方便查看一個(gè)對象的原型,F(xiàn)irefox和Chrome內(nèi)核的JavaScript引擎中提供了“proto”這個(gè)非標(biāo)準(zhǔn)的訪問器(ECMA新標(biāo)準(zhǔn)中引入了標(biāo)準(zhǔn)對象原型訪問器“Object.getPrototype(object)”)原型的主要作用就是為了實(shí)現(xiàn)繼承與擴(kuò)展對象。


什么時(shí)候用prototype?

使用 prototype的好處是不會額外產(chǎn)生內(nèi)存,所有實(shí)例化后的對象都會從原型上繼承這個(gè)方法。也就是需要一個(gè)子類擁有父類的某些特性(同種特性可以覆蓋),又可以添加自己的特性,而不會影響父類時(shí)候使用prototype。

Prototype通常用來解決一個(gè)問題:對象的創(chuàng)建比較耗費(fèi)資源。比如,對象創(chuàng)建的時(shí)候需要訪問數(shù)據(jù)庫、需要讀取外部文件、需要使用網(wǎng)絡(luò),這些都是比較耗費(fèi)時(shí)間和內(nèi)存的。如果可以用clone來解決,就方便多了。當(dāng)需要?jiǎng)?chuàng)建很多 擁有相同屬性的對象時(shí)候需要clone。

HTML&JS+前端課程


猜你喜歡:

js如何將json字符串轉(zhuǎn)換為json對象?

常見的js中的繼承方法有哪些?

Js變量命名規(guī)范

變量是什么?JavaScript變量的命名聲明與賦值講解

傳智教育HTML&JS+前端培訓(xùn)課程

0 分享到:
和我們在線交談!