如何跨JavaScript类访问属性

时间:2019-01-18 02:08:57

标签: javascript class

我想让两个类相互交互,但是类之间的交互不是我所期望的。如何解决?

class InstanceActions {

 static handleInstanceAction() {
    console.log(this);
  }
}

class main {
  constructor() {
    InstanceActions.handleInstanceAction(); // expected main, but undefined
  }
}

new main();

enter image description here

1 个答案:

答案 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中,由调用控制(箭头功能除外)。