我想让两个类相互交互,但是类之间的交互不是我所期望的。如何解决?
class InstanceActions {
static handleInstanceAction() {
console.log(this);
}
}
class main {
constructor() {
InstanceActions.handleInstanceAction(); // expected main, but undefined
}
}
new main();
答案 0 :(得分:0)
您编写的代码会引发语法错误,静态方法的语法为:
static methodName () {
methodBody
}
因此您的代码应为:
class InstanceActions {
static handleInstanceAction() {
console.log(this);
}
}
class main {
constructor() {
InstanceActions.handleInstanceAction(); // expected main, but undefined
}
}
new main();
结果是:
class InstanceActions {
static handleInstanceAction() {
console.log(this);
}
}
因为您正在使用 handleInstanceAction 作为 InstanceActions 的方法,所以它被视为普通对象。
在javascript中,此由调用控制(箭头功能除外)。