我正在開始一系列有關 JavaScript 概念的文章,而這只是開始。在第一篇文章中,我們將探討物件的基本概念,這對於理解 JavaScript 中的資料結構如何運作至關重要。
請繼續關注下一篇文章,它將繼續本文和其他幾個主題。
現實世界中,物件是實體(真實的或抽象的)。例如:鉛筆、汽車、筆記本。這些物件中的每一個都有特定的屬性。例如:一輛藍色汽車、一支紅色鉛筆或一本大筆記本。
在 JavaScript 中,物件是收集屬性的獨立實體。屬性是名稱和值之間的關聯,即描述物件的資訊。
在此範例中,顏色和尺寸是汽車物件的屬性,並且每個屬性都有一個關聯值。
文字物件以簡單直接的方式創建,其中值已經手動定義。當您的物件有一組固定的屬性時,此語法非常理想。
當屬性不經常變更或需要快速建立具有固定值的物件時,這種類型的物件非常有用。
建構函式用於動態建立對象,特別是當您需要多個相似的對象時。當使用 new 關鍵字時,會建立一個引用建構函數的新物件。
作為一個較傳統且較不學術的例子:
在這種情況下,輸出將被「標記」為 Person 函數規定的模型中的 person1 和 person2 變數指派的值。
在建構子中,我們使用 this 關鍵字來引用正在建立的物件。這允許您定義物件的動態屬性和方法。
例如上面的程式碼中,this.name和this.age定義了物件的屬性,而greet方法是與該物件關聯的函數。
JavaScript 中的繼承是透過原型實現的。您不是直接從另一個對象建立一個對象,而是建立一個層次結構,其中一個對象可以從另一個對象繼承屬性和方法。這是使用 call 或 apply 方法完成的。
當我們使用 Pessoa.call(this, nome) 時,我們正在呼叫 Pessoa 建構子並傳遞 Student 物件的上下文。這使得student1物件繼承了Person的name屬性,也擁有了age屬性,這是Student函數獨有的。
當需要建立多個具有許多屬性和具有變數值的方法的物件時,最常使用建構子。在這種情況下,最好使用建構函數物件作為“標記”,而不是手動編寫多個物件。
使用建構函式建立的物件是由new運算子產生的實例。每個實例都有自己的屬性,但共享建構函式原型中定義的方法。
這意味著,如果您從建構函數建立多個對象,它們將具有相同的方法,但屬性值不同。
在這種情況下,new 運算子建立一個新對象,將上下文 (this) 綁定到建構子
對於共享方法,新增建構函式的原型會更有效率。這可以避免記憶體重複。
透過在建構函數的原型中定義方法,我們可以避免程式碼重複。它們不是每個物件都有該方法的副本,而是共享相同的方法,從而節省記憶體。
new 運算子建立一個新對象,並將上下文 (this) 綁定到建構函數。
對於共享方法,將它們添加到建構函數的原型中會更有效率,避免記憶體中的重複。
以上是JavaScript 中的對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!