在 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()
出乎我的意料,我无法在 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()