Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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 函数表达式可以转换为lambda表达式_Javascript_Typescript_Resharper - Fatal编程技术网

Javascript 函数表达式可以转换为lambda表达式

Javascript 函数表达式可以转换为lambda表达式,javascript,typescript,resharper,Javascript,Typescript,Resharper,如果我有这样一个片段 module MyModule{ export var myfunc = function() { } } 然后ReSharper建议转换为 module MyModule{ export var myfunc = () => { } } 但是,当函数使用此 module MyModule{ export var myfunc = function(){ var x = $(this); } } 当

如果我有这样一个片段

module MyModule{
    export var myfunc = function() {
    }
}
然后ReSharper建议转换为

module MyModule{
    export var myfunc = () => {
    }
}
但是,当函数使用此

module MyModule{
    export var myfunc = function(){
        var x = $(this);
    }
}
当使用
时,为什么转换不起作用


(如果您想知道为什么我在模块中使用
this
,这是因为该方法是一个事件处理程序)

一个arrow函数被隐式设置为
this
在arrow函数实例化的范围内是什么。就像你写的:

var myfunc = () => { ... } .bind(this);

我认为这背后的概念是,通常情况下,这样的回调确实希望从外部上下文访问
this
值。正如您所看到的,有时它们不会。您的意思是resharper不建议将函数转换为箭头函数,因为您正在使用
?@minus-four?我阅读问题的意思是,当OP进行转换时,当函数希望像在传统函数中一样绑定此
时,它不起作用。(例如,当将函数传递给
jQuery.each()
)时,您期望的工作方式是@MinusFour我需要编辑我的答案。刚发现当函数在模块内时它不工作。