這篇文章主要為大家展示了“JavaScript中對象原型鏈原理是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JavaScript中對象原型鏈原理是什么”這篇文章吧。
成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管雅安報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
一個(gè)js對象,除了自己設(shè)置的屬性外,還會(huì)自動(dòng)生成proto、class、extensible屬性,其中,proto屬性指向?qū)ο蟮脑汀?/p>
對象的屬性也有writable、enumerable、configurable、value和get/set的配置方法。
對象的創(chuàng)建方式有三種:
一、使用字面量直接創(chuàng)建。
二、基于原型鏈創(chuàng)建。
分析上圖,要點(diǎn)如下:
1.可以new運(yùn)算符新建對象,foo為自定義函數(shù),即是對象。
2.可以設(shè)置foo.prototype上的屬性。
3.變量z在原型鏈上,為foo.prototype的屬性,并非obj的自有屬性。
4.原型鏈為obj->foo.prototype->Object.prototype->null。
分析上圖,要點(diǎn)如下:
1.若定義與原型鏈上同名的變量,則不會(huì)覆蓋原型鏈上的變量,而是在對象本身新增副本。
2.delete運(yùn)算符不會(huì)影響原型鏈上已有的變量,只會(huì)刪除對象自身的屬性。
三、使用Object.create創(chuàng)建。
分析上圖,要點(diǎn)如下:
1.Object.create是基于傳入的參數(shù)產(chǎn)生新的對象,并且入?yún)?huì)成為其原型鏈上的一部分。
2.Object.create(null)創(chuàng)建的對象直接指向null。
以上是“JavaScript中對象原型鏈原理是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!