我的理解是,这不起作用(这是一个人为的例子 - 请参阅RxJS了解我实际运行的内容):
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运行同样的效果)
答案 0 :(得分:2)
该页面上的示例已损坏。
假设它从未按照当前发布的方式运行是公平的,因为它在
中有语法错误var subcription = emitter.listen('data', data => console.log(`data: ${data}`);
行(不是成对的括号)。
在修复并运行之后 - 还有其他关于读取undefined
属性的例外情况,在前面提到的箭头函数中是this
。