ES6类中对`this`的嵌套引用

时间:2016-05-26 10:59:29

标签: node.js ecmascript-6

采取以下示例;

class MyClass {
  run() {
    this.hello = 1;
    co(function*() {
      this.hello // this is now 'undefined'
    })
  }
}
new MyClass().run()

在ES5中,我通常会将this分配给函数开头的另一个变量,例如var cls = this,但我希望ES6 / ES7现在可以解决这个问题。 / p>

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用bind

class MyClass {
  run() {
    this.hello = 1;
    co(function*() {
      this.hello // 1
    }.bind(this));
  }
}
new MyClass().run()