1. 程式人生 > 程式設計 >JavaScript物件原型鏈原理解析

JavaScript物件原型鏈原理解析

這篇文章主要介紹了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。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。