javascript - 箭头函数原型(prototype)中的这个范围

标签 javascript ecmascript-6 rxjs arrow-functions

我的理解是这行不通(这是一个人为的例子 - 请参阅 RxJS 以了解我实际运行的内容):

function Foo() {
  this.name = 'Johnny Cash'
}

Foo.prototype.who = () => {
  console.log(this.name) // undefined
};

var foo = new Foo();

foo.who()

因为 this 没有正确的范围。然而this RxJS 文档上的页面(最后 2 个底部示例)使用它。他们如何运行此代码?

是不是RxJS页面的代码不对?还是我需要运行某种 Babel 插件(我已经尝试运行具有相同效果的 babel-require 和 babel-polyfill)

最佳答案

该页面上的示例已损坏。

假设它从未像当前发布的那样运行是公平的,因为它在

var subcription = emitter.listen('data', data => console.log(`data: ${data}`);

行(不是成对的括号)。

修复并运行后 - 关于读取 undefined 的属性还有其他异常,即上述箭头函数中的 this

关于javascript - 箭头函数原型(prototype)中的这个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557998/

相关文章:

javascript - 如何为另一个函数中的函数编写测试用例?

javascript - Angular 6 解析始终未定义

redux - 使用惯用的 redux observable 排队和取消事件

javascript - 如何在Angualar的jqLit​​e元素对象中通过id查找元素

javascript - 如何使用 "Enter"按钮将 State 设置为我的组件

javascript - 在Backbone中,一旦模型被破坏,如何替换 View 的模型?

javascript - 使用 ES6 和 webpack 导入 Angular 服务

angular - typescript 错误 "incorrectly implements interface"类型 'Subject<boolean>' 不可分配给类型 'Subject<boolean>'

javascript - for 循环中的粘性/静态变量引用

javascript - js 中检查空字符串失败