簡體   English   中英

如何在 JavaScript 中的 class 內的數組內編輯 object 的值?

[英]How to edit values of an object inside an array inside a class in JavaScript?

如果我有一個帶有構造函數的 class 並且在構造函數中有一個帶有對象的數組,並且我想要一個 object 方法來編輯對象的值,它會變得有點混亂。

這就是我的目標:

class SomeClass {
  constructor() {
    this.o = [
      {
        name: "John",
        changeName: () => {
          this.name = "Mike";
        },
      },
    ];
  }
}

SomeClass.o[0].changeName();

但這不起作用,因為this指的是 class 而不是 object。

首先,如果您希望構造函數運行,您需要使用new創建一個實例。

當您希望this引用您調用該方法的 object 時,不要使用箭頭函數。

像這樣正確:

 class SomeClass { constructor() { this.o = [ { name: "John", changeName() { // not an arrow function this.name = "Mike"; }, }, ]; } } let obj = new SomeClass(); // use `new` obj.o[0].changeName(); console.log(obj.o[0].name);

暫無
暫無

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

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