javascript constructor屬性

前面講到原型屬性與實例屬性,在此我不得不提constructor屬性,爲了更深入瞭解constructor屬性,我查了一些資料,下面我們來看看一個實例。

function Person() {
// some code
}
javascript內部會自動執行如下幾個動作:

1.爲Person()函數添加一個原形(即 prototype)屬性 ;
2.爲 prototype 對象額外添加一個 constructor 屬性,並且該屬性保存指向函數Person的一個引用;

這樣當我們把函數 Person ()作爲自定義構造函數來創建對象的時候,對象實例內部會自動保存一個指向其構造函數(這裏就是我們的自定義構造函數 Person())的 prototype 對象的一個屬性proto.(關於其屬性可以查看:https://msdn.microsoft.com/zh-cn/library/dn342818(v=vs.94).aspx)

在每一個對象實例中就可以訪問構造函數的 prototype 所有擁有的全部屬性和方法.就好像它們是實例自己的一樣,當然該實例也有一個 constructor屬性了(從 prototype 那裏獲得的),每一個對象實例都可以通過 constrcutor訪問它的構造函數。
var person1=new Person();
var person2=new Person(); 

上面這兩個對象都有一個constructor屬性,該屬性指向Person.

document.write(person1.constructor===Person)  //output: true
document.write(person1.constructor===Person.prototype.constructor);  //output: true

參考資料:
《javascript高級程序設計》
http://blog.csdn.net/zengyonglan/article/details/53465505

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章