關於js中對物件原型和建構函式的一些理解

2021-07-30 21:08:53 字數 1757 閱讀 8221

先隨意寫乙個建構函式,然後建立兩個它的例項物件。

對於例項box1,box2他們有乙個指標__proto__,共同指向 box.prototype

(box1.__proto__ === box2.__proto__) && (box1.__proto__ === box.prototype) //true
列印出 box1.__proto__, 得出以下結果:

object:

- constructor:

function

box(age)

- run:

function

() - __proto__:

object

{}

可以看出box1的原型指標指向box. prototype的物件屬性,起物件屬性裡面包含三個屬性:

1. constructor,  

2. 乙個原型裡面定義的函式或者變數: run,

3. 還有乙個指向object.prototype的指標`__proto__`

(1)constructor 就是此建構函式在例項化以前還是普通函式的樣子, 可以看上面的圖。

box1.constructor === box //true

box1.__proto__.constructor === box1.constructor

//true

box1.__proto__.constructor === box //true

可以這樣把它當成一般函式用:

box1.constructor(50) //50
和這個是乙個意思.

box(50); //50
這只是為了加深理解,應該沒有人會這麼用。

(2)接下來原型裡的函式或者變數

box1.run === box2.run //true
每個例項物件其原型都是指向乙個地方,或者說是共用的,請看上圖理解。

(3)原型鏈指向object.prototype.

box1.__proto__.__proto__ === object.prototype //true
所以:

box1 instanceof box; //true

box instanceof

object; //true

box1 instanceof

object; //true

總結: 對於例項物件來說,分成兩個部分:

一, 例項物件的屬性部分,這部分每個例項物件的位址不一樣;

二, 例項物件的原型部分,這部分每個例項物件都指向同乙個原型位址。

js建構函式和原型

建立物件的方式 1,物件字面量 var obj1 2,new object var obj2 new object 3,利用建構函式建立物件 建構函式 利用建構函式 可以建立很多個物件 建構函式,把物件中公共屬性和方法抽出來,放在建構函式裡,通過new建立不同的物件 function star na...

js關於原型建構函式和原型鏈的理解

js的物件導向方式的函式有很多種方式,其中有兩個比較重要的是兩種方式一是建構函式模式,一是原型模式。1 建構函式模式如 function persion name,age var person1 new person alex 29 person1.sayname alex var person2 ...

面對物件 建構函式

1.使用建構函式 作用 要建立同乙個物件的多個例項,就要反覆建立例項的過程 建立物件 新增屬性 定義方法等就會很麻煩。因此要考慮建構函式 只有乙個全域性例項的物件有時候成為 單例 物件,在有些場合很實用,如程式的使用者只有乙個相關的userprofile物件,其中包括他的名字 最後訪問的頁面等類似屬...