js原型鏈介紹 梳理

2021-09-25 20:48:00 字數 677 閱讀 4177

要了解原型鏈,首先要了解什麼是原型模式,原型鏈其實就是多個原型模式的」串聯」結果;

我們建立的每個函式都有乙個prototype 屬性 這個屬性值是乙個指標,這個指標指向乙個物件(原型物件)。而這個物件包含了 - 這個函式的所有例項 - 可以共享使用的屬性和方法,(每乙個函式都可以看做是建構函式,所以也都可以使用new 定義乙個對應的例項)。

在預設情況下,所有原型物件都會自動獲得乙個constructor 屬性 ,其餘的屬性都是從object 繼承來的,(這個原型物件 也是object 的乙個例項 所以它可以繼承object 的屬性和方法)。這個constructor 屬性指向prototype 屬性所在的函式,就是那個產生原型物件的建構函式。

以上是建構函式和原型物件之間的關係,接下來介紹例項和原型物件的關係。

到這裡我們對原型模式以及有了簡單的了解。

如果我們把某乙個建構函式a的例項賦值給另乙個建構函式b的原型物件,也就是說建構函式a的例項是建構函式b的原型物件,相當於在例項上嫁接了乙個原型模式,這樣建構函式b的例項所能共享的屬性和方法就包括了建構函式a 以及建構函式a原型物件上的屬性和方法,當我們訪問乙個建構函式b的例項方法時,系統會先在當前例項中找是否有這個方法,如果沒有再去例項b中找,如果換沒有再去例項b的原型物件(也就是建構函式a的例項)中去找,這樣一層一層指導找到對應屬性或方法。這樣就構成了原型鏈,其實就是在例項上嫁接另乙個原型物件。

JS 物件 JS原型 原型鏈

參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...

js 原型與原型鏈

5條原型規則 1.所有的引用型別 陣列 物件 函式 都具有物件特性,即可自由擴充套件屬性 除了 null 除外 2.所有的引用型別 陣列 物件 函式 都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件。3.所有的函式,都有乙個prototype 顯式原型 屬性,屬性值也是乙個普通的物件。4...

JS原型物件,原型鏈

js中建立物件都是通過建構函式建立的,所以每個物件中都有乙個指向其建構函式的指標constructor var obj new object var arr new array var obj2 字面量建立實質上是上面方式的簡寫 var arr2 var str new string test 建立...