如果我有这样的代码段
module MyModule{
export var myfunc = function() {
}
}
然后ReSharper建议转换为
module MyModule{
export var myfunc = () => {
}
}
但是当函数使用this
module MyModule{
export var myfunc = function(){
var x = $(this);
}
}
为什么在使用this
时转换无效?
(如果你想知道为什么我在模块中使用this
,那是因为这个方法是一个事件处理程序)
答案 0 :(得分:2)
隐式设置箭头函数,使this
是实例化箭头函数的范围内的任何内容。就像你写的那样:
var myfunc = () => { ... } .bind(this);
我认为背后的概念是,这种回调通常需要从外部上下文访问this
值。正如你所看到的,有时他们没有。