在 class 方法中访问 Javascript class 字段

Access Javascript class fields in class methods

出乎我的意料,我无法在 class 方法 initialize()[= 中访问我的 class 字段 myLibrary 20=].

class ViewController {
      myLibrary = new Library();
      initialize() {
        console.log(myLibrary); // undefined

我找到的唯一“解决方案”是在 class 之外将 myLibrary 声明为全局变量。有没有办法在 class 中声明字段,然后使用它们?

Java脚本 类 与 Java 的工作方式不同 类。

要访问对象的属性您需要声明对象,然后访问对象的属性。它们在当前范围内不被视为变量。

在方法内部,关键字 this 将为您提供关联的对象。 (请参阅 How does the "this" keyword work? 以获得更简单的解释)。

所以你需要 this.myLibrary 而不仅仅是 myLibrary.

class Library {
  …
}

class ViewController {
  constructor() {
    this.myLibrary = new Library();
  }

  log() {
    console.log(this.myLibrary);
  }
}

const viewController = new ViewController();
viewController.log()