Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6箭头/功能等效性_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript ES6箭头/功能等效性

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绑定到外部范围,因此在这种情况下它并

我只是想把我的一些代码改成ES6,我遇到了一些箭头函数不起作用的代码,我不知道为什么。代码来自Hapi的插件,用于装饰
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