簡體   English   中英

無法在 javascript 中的 Class 的 object 中聲明對象

[英]cannot declare objects inside an object of a Class in javascript

class A{
    obj = {};
    obj.x = 0;
}

let a = new A()

為什么我們不能在 class 中執行此操作(在 class 中創建一個 object 並為其賦予屬性)?

您可以使用該語法(在構造函數之外)定義實例字段,但不能改變它們。 不要將=語法與通常的賦值語法混淆,因為它確實有不同的規則。 例如,您還可以使用以下語法:

class A {
    ["obj"] = {};
}

如果你想改變字段/屬性,你必須在構造函數或其他方法中進行。 另一方面,沒有什么能阻止您使用更詳細的 object 文字來初始化該字段。

注意:要創建實例,您應該使用new關鍵字。

所以要么做:

 class A { obj = { x: 0 }; } let a = new A(); console.log(a.obj.x);

或者做:

 class A { obj = {}; constructor() { this.obj.x = 0; } } let a = new A(); console.log(a.obj.x);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM