如何使用类的静态函数访问this
范围?我在这里错过了什么吗?
class Example {
constructor() {
this.name = 'Johan';
}
static hello(){
// How to access `this` scope here in the static
Example.name; // Undefined
this.name; // Undefined
}
}
答案 0 :(得分:1)
评论者是正确的,this
在静态类方法的上下文中是类本身。
使用new
创建类的实例时,该实例是其自己的this
。您可以通过this
访问实例上的属性和方法。
请参阅以下示例:
class Example {
constructor() {
this.name = 'Johan';
}
static hello(){
console.log(this);
console.log(this.name);
}
}
Example.hello(); // logs out the above class definition, followed by the name of the class itself.
let x = new Example();
console.log(x.name); // logs out 'Johan'.
x.hello(); // x does not have `hello()`. Only Example does.