node.js - ES6 类中对 `this` 的嵌套引用

标签 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 现在能够解决这个问题。

有更好的方法吗?

最佳答案

您可以使用bind :

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

关于node.js - ES6 类中对 `this` 的嵌套引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458925/

相关文章:

node.js - 我是否需要等待在 Redis 中(在 node.js 中)调用 WATCH 的回调?

javascript - Angular js 启动模块

node.js - 在 Nodejs 缓冲区中写入位

javascript - “leaking arguments”是谎言吗?

reactjs - Redux 更新嵌套数据 [不可变更新模式]

python - Node.js 作为 Django 的自定义(流式)上传处理程序

node.js - 使用 express-validator 进行单元测试验证

javascript 根据属性值从数组中删除所有对象

JavaScript - 使用 es6 从对象数组中计算和删除重复项

javascript - 如何让 JSDoc 识别分配给对象属性的匿名函数? (包含示例代码)