箭头函数原型中的这个范围
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
。
我的理解是这行不通(这是一个人为的例子 - 请参阅 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
。