箭头函数原型中的这个范围

this scope in arrow function prototypes

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

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

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

var foo = new Foo();

foo.who()

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

RxJS页面的代码是不是有误?还是我需要 运行 通过某种 Babel 插件(我已经尝试通过 babel-require 和 babel-polyfill 运行 来达到同样的效果)

该页面上的示例已损坏。

可以公平地假设它从来没有像当前发布的那样 运行,因为它在

中有语法错误
var subcription = emitter.listen('data', data => console.log(`data: ${data}`);

行(不是成对的括号)。

固定后 运行 - 关于 undefined 的读取属性还有其他例外情况,即上述箭头函数中的 this