下面是可能用到的知識點
將person例項化var o1 = {}; // 普通物件
function f1(){} // 函式物件
f1.prototype // 原型物件
function person(name, age, job)
}每個物件都有 __proto__ 屬性,但只有函式物件才有 prototype 屬性
有constructor才能夠例項化
由此可以得出結論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...