【问题标题】:How to edit values of an object inside an array inside a class in JavaScript?如何在 JavaScript 中的类内编辑数组内对象的值?
【发布时间】:2025-11-26 02:00:02
【问题描述】:

如果我有一个带有构造函数的类,并且在构造函数中有一个带有对象的数组,并且我想要一个对象方法来编辑对象的值,那么它会变得有点混乱。

这就是我的目标:

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

SomeClass.o[0].changeName();

但这不起作用,因为this 指的是类而不是对象。

【问题讨论】:

    标签: javascript arrays methods javascript-objects


    【解决方案1】:

    首先,如果你想让构造函数运行,你需要用new创建一个实例。

    当您希望this 引用您调用该方法的对象时,不要使用箭头函数。

    如此正确:

    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);

    【讨论】: