原型及原型鏈相關理解

2021-09-10 22:09:49 字數 1223 閱讀 2974

下面是可能用到的知識點

var o1 = {}; // 普通物件

function f1(){} // 函式物件

f1.prototype // 原型物件

function person(name, age, job)

}每個物件都有 __proto__ 屬性,但只有函式物件才有 prototype 屬性

​有constructor才能夠例項化

將person例項化

由此可以得出結論p1.constructor == person例項的建構函式屬性(constructor)指向建構函式。

在預設情況下,所有的原型物件都會自動獲得乙個constructor(建構函式)屬性,這個屬性(是乙個指標)指向prototype屬性所在的函式 。  

所有例項物件需要共享的屬性和方法,都放在這個prototype物件裡面;那些不需要共享的屬性和方法,就放在建構函式裡面。

例項物件一旦建立,將自動引用prototype物件的屬性和方法。也就是說,例項物件的屬性和方法,分成兩種,一種是本地的,另一種是引用的。

js 在建立物件的時候,都有乙個叫做__proto__的屬性,用於指向建立它的建構函式的原型物件

物件 p1 有乙個__proto__屬性,建立它的建構函式是 person,建構函式的原型物件是 person.prototype ,所以:

p1.__proto__ == person.prototype

一般來說xx.__proto__ == 從哪來的.prototype

特別要注意的是 object.prototype.__proto__ === null (這個四原型鏈的頂端,死記!)

原型及原型鏈

原型定義 原型是function物件的乙個屬性,它定義了建構函式製造出的物件的公共祖先。通過建構函式產生的物件,可以繼承該原型的屬性和方法。原型是物件屬性prototype對應的值。注 原型是乙個物件。我們可以直接在建構函式的prototype上直接新增屬性,也可以將建構函式的prototype指向...

js 原型 原型鏈理解

執行發現如下 自定義乙個函式,函式包含兩個關鍵資料 prototype,proto 1 原型 prototype person具有prototype屬性 包含我們定義的屬性name,age以及constructor,並且constructor指向我們的person函式,可以理解為prototype就...

原型與原型鏈的理解及解釋

原型和繼承constructor prototype proto 建構函式 例項物件 用來初始化新建立的物件的函式是建構函式。在 c 語言中,類 有乙個建構函式,它與類同名且沒有返回值的 可以不寫,也可過載多個 在 js 中,沒有 類 的概念,原型物件 姑且等同於 類 原型物件有 construct...