1. 程式人生 > >Javascript object.constructor屬性與面向物件程式設計(oop)

Javascript object.constructor屬性與面向物件程式設計(oop)

定義和用法

在 JavaScript 中, constructor 屬性返回物件的建構函式。

返回值是函式的引用,不是函式名:

JavaScript 陣列 constructor 屬性返回 function Array() { [native code] }

JavaScript 數字 constructor 屬性返回 function Number() { [native code] }

JavaScript 字串 constructor 屬性返回 function String() { [native code] }

如果一個變數是陣列你可以使用 constructor 屬性來定義。

語法

array.constructor   原型:函式建立時會自動內建一個prototype屬性,這個屬性是一個object,所以也稱該屬性稱為原型物件。 而在prototype中也有個construct屬性。 繼承:關於繼承,js中繼承是通過原型的方式繼承的,有一個屬性稱為原型鏈。  

constructor:

在 Javascript 語言中,constructor 屬性是專門為 function 而設計的,它存在於每一個 function 的prototype 屬性中。

這個 constructor 儲存了指向 function 的一個引用。

在定義一個函式(程式碼如下所示)時,

1 function F() {
2 // some code
3 }

JavaScript 內部會執行如下幾個動作:

1.為該函式新增一個原形(即 prototype)屬性

2. 為 prototype 物件額外新增一個 constructor 屬性,並且該屬性儲存指向函式F 的一個引用

下圖詳解了js中的物件的佈局

constructor 的出現原本就是用來進行物件型別判斷的。

原型鏈繼承,由於 constructor 存在於 prototype 物件上,因此可以結合 

constructor 沿著原型鏈找到最原始的建構函式

這些都是 constructor 在原型鏈中的作用,其更實際一點的意義在於:一個子類物件可以獲得其父類的所有屬性和方法,稱之為繼承。
---------------------------

部分內容來自:

runoob.com

https://blog.csdn.net/zengyonglan/article/details/53465505 

https://www.cnblogs.com/wangxuehao/p/6554785.html