時間:2020-02-05來源:系統城作者:電腦系統城
這篇文章主要介紹了JavaScript對象原型鏈原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一個js對象,除了自己設置的屬性外,還會自動生成proto、class、extensible屬性,其中,proto屬性指向對象的原型。
對象的屬性也有writable、enumerable、configurable、value和get/set的配置方法。
對象的創建方式有三種:
一、使用字面量直接創建。
二、基于原型鏈創建。
分析上圖,要點如下:
1.可以new運算符新建對象,foo為自定義函數,即是對象。
2.可以設置foo.prototype上的屬性。
3.變量z在原型鏈上,為foo.prototype的屬性,并非obj的自有屬性。
4.原型鏈為obj->foo.prototype->Object.prototype->null。
分析上圖,要點如下:
1.若定義與原型鏈上同名的變量,則不會覆蓋原型鏈上的變量,而是在對象本身新增副本。
2.delete運算符不會影響原型鏈上已有的變量,只會刪除對象自身的屬性。
三、使用Object.create創建。
分析上圖,要點如下:
1.Object.create是基于傳入的參數產生新的對象,并且入參會成為其原型鏈上的一部分。
2.Object.create(null)創建的對象直接指向null。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
2020-11-11
Vue3 響應式偵聽與計算的實現2020-10-19
詳解mybatis-plus配置找不到Mapper接口路徑的坑2020-10-19
SpringBoot下使用MyBatis-Puls代碼生成器的方法