Javascript ES6箭头/功能等效性
我只是想把我的一些代码改成ES6,我遇到了一些箭头函数不起作用的代码,我不知道为什么。代码来自Hapi的插件,用于装饰Javascript ES6箭头/功能等效性,javascript,ecmascript-6,Javascript,Ecmascript 6,我只是想把我的一些代码改成ES6,我遇到了一些箭头函数不起作用的代码,我不知道为什么。代码来自Hapi的插件,用于装饰reply界面 ES5: ES6: E66不工作并抛出错误: Uncaught error: this.response is not a function 这是为什么?在这种特殊情况下,库正在更改的回调中此引用的内容。使用箭头函数(=>)时,此相当于外部作用域的此。这意味着您基本上无法使用function。ES6中的箭头函数会自动将This绑定到外部范围,因此在这种情况下它并
reply
界面
ES5:
ES6:
E66不工作并抛出错误:
Uncaught error: this.response is not a function
这是为什么?在这种特殊情况下,库正在更改
的回调中此引用的内容。使用箭头函数(=>
)时,此
相当于外部作用域的此
。这意味着您基本上无法使用function
。ES6中的箭头函数会自动将This
绑定到外部范围,因此在这种情况下它并不等效。我明白了-答案是什么?只需将其保留为功能
?是的。如果这个
特定函数绑定到其他函数,那么就没有什么可以做的了。好的。贴一个答案,我会记下来。感谢这一行为的不同之处在于相关MDN页面的第一段。顺便说一下,正确的术语是“箭头功能”(而不是“双箭头功能”)。
server.decorate('reply', 'test', (schema, response) => {
return this.response(mask(schema, response));
});
Uncaught error: this.response is not a function