JavaScript 不像其他物件導向語言(例如 Java 或 C)那樣支援傳統意義上的類別。然而,它提供了一種獨特的機制來使用原型為物件定義建構函數。
使用原型:
JavaScript 物件有一個原型屬性,可用於新增方法和該物件的所有實例的屬性。要使用原型定義建構函數,我們建立一個函數並將其指派給物件的原型:
<code class="javascript">function Box(color) { // Constructor this.color = color; } Box.prototype.getColor = function() { return this.color; };</code>
此建構函式採用顏色參數並將其儲存在物件的 color 屬性中。它還在原型中添加了一個 getColor 方法,該方法可以被 Box 物件的所有實例存取。
隱藏私有屬性:
而JavaScript 沒有true私有成員,我們可以使用一種技術來模擬私有屬性:
<code class="javascript">function Box(col) { var color = col; this.getColor = function() { return color; }; }</code>
在這個例子中,顏色變數在建構函數中被宣告為局部變數。不能從構造函數外部直接存取它。但是,我們提供了一個 getColor 方法,它會傳回顏色變數的值。
用法:
要建立Box 物件的實例,我們使用new 關鍵字後面是建構子名稱:
<code class="javascript">var blueBox = new Box("blue"); alert(blueBox.getColor()); // will alert blue var greenBox = new Box("green"); alert(greenBox.getColor()); // will alert green</code>
透過利用原型或模擬私有屬性,JavaScript 允許我們為物件定義建構函數,並在一定程度上模擬封裝。
以上是如何定義 JavaScript 物件的建構函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!