web前端 之 原型鏈

2021-09-29 08:58:08 字數 1709 閱讀 9283

1、字面量

var o1 =

;var o2 =

newobject()

;

2、通過建構函式

varm=

function

(name)

;var o3 =

newm

('o3'

);

3、通過object.create()方法

var p =

var o4 = object.

create

(p);

o4是空的,但是是乙個物件,原因是:建立的是例項的原型物件,即建立在o4.__proto屬性中了,o4.__proto__指向的就是p

建構函式

凡是通過new操作的函式都是建構函式

例項

o1/o2都是例項

建構函式可以通過new運算子生成乙個例項

原型

函式都有乙個prototype的屬性,宣告乙個函式的時候js會自動增加這個屬性

原型物件通過構造器constructor來指定是被哪個函式所引用

原型鏈

從乙個例項物件往上找構造這個例項相關的物件,該物件再往上找,直到object.prototype為止

原型鏈的工作原理

在原型物件上定義乙個公共方法,那麼通過建構函式建立的例項會共用這個方法

m

.prototype.

say=

function()

//o5與o3共用say方法,效果見下圖

例項物件的__proto__ === 屬性建構函式.prototype

instanceof判斷的是例項物件的__proto__ 屬性與建構函式.prototype兩者之間是否引用同乙個位址,是則true,否則false

注意:只要是這條原型鏈上的建構函式,instanceof判斷的都為true,原因見下圖

如果需要判斷原型物件是從哪個建構函式延伸出來的,那麼使用constructor屬性來判斷,如下圖

前端開發之原型與原型鏈

什麼是原型和原型鏈 1 原型分為顯式原型和隱式原型。顯示原型對應的是prototype屬性,隱式原型對應的是 proto 屬性。2 所有物件 萬物皆物件 都有 proto 屬性,包括函式 示例等,只有函式才有prototype屬性。3 prototype屬性值其實也是乙個物件,型別為object。它...

前端面試之原型鏈總結

凡事通過new function 建立的物件,都是函式物件,其他的都是普通物件。function person name,age,job var person1 new person 小花 12 好好學習 person1.sayname console.log person1.constructor...

javascript之原型,原型鏈

1.定義 原型是function物件的乙個屬性,它定義了建構函式製造出的物件的公共祖先。通過該建構函式產生的物件,可以繼承該原型的屬性和方法。原型也是物件。2.利用原型特點和概念,可以提取共有屬性。3.物件如何檢視原型 隱式屬性 proto 4.物件如何檢視物件的建構函式 constructor v...