我刚刚将我的一些代码更改为ES6,并且我遇到了一些代码,其中箭头功能不起作用,我不确定我理解为什么。代码来自Hapi的插件来装饰reply
接口。
ES5:
server.decorate('reply', 'test', function(schema, response) {
return this.response(mask(schema, response));
});
ES6:
server.decorate('reply', 'test', (schema, response) => {
return this.response(mask(schema, response));
});
E66无法正常工作并抛出错误:
Uncaught error: this.response is not a function
为什么会这样?
答案 0 :(得分:6)
在这种特殊情况下,库正在更改this
回调中decorate
引用的内容。使用箭头函数(=>
)时,this
等同于外部范围的this
。这意味着您基本上使用function
进行了此操作。