我的理解是这不起作用(这是一个人为的例子 – 请参阅RxJS了解我实际运行的内容):
function Foo() {
this.name = 'Johnny Cash'
}
Foo.prototype.who = () => {
console.log(this.name) // undefined
};
var foo = new Foo();
foo.who()
因为这没有正确的范围.但是,RxJS文档上的this页(最后2个底部示例)使用它.他们如何运行此代码?
RxJS页面上的代码是否不正确?或者我是否需要通过某种Babel插件(我已经尝试通过babel-require和babel-polyfill运行同样的效果)
解决方法:
该页面上的示例已被破坏.
假设它从未按照当前发布的方式运行是公平的,因为它具有语法错误
var subcription = emitter.listen('data', data => console.log(`data: ${data}`);
线(不是成对的括号).
在修复并运行之后 – 还有其他关于读取undefined属性的例外,这就是前面提到的箭头函数.