Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 箭头函数有时令人困惑。如果省略return语句会发生什么_Javascript_Function_Ecmascript 6_Arrow Functions - Fatal编程技术网

Javascript 箭头函数有时令人困惑。如果省略return语句会发生什么

Javascript 箭头函数有时令人困惑。如果省略return语句会发生什么,javascript,function,ecmascript-6,arrow-functions,Javascript,Function,Ecmascript 6,Arrow Functions,今天我在我的代码中发现了一个让我发疯的关于箭头函数的问题 我认为: classMethod = (param1, param2) => this.APImethod(param1, param2); 相当于: classMethod = (param1, param2) => {this.APImethod(param1, param2)} 但是没有。 这: 正在忽略返回语句。函数同时返回“this.APImethod(param1,param2)” class

今天我在我的代码中发现了一个让我发疯的关于箭头函数的问题

我认为:

 classMethod = (param1, param2) =>
    this.APImethod(param1, param2);
相当于:

classMethod = (param1, param2) =>
    {this.APImethod(param1, param2)}
但是没有。 这:

正在忽略返回语句。函数同时返回“this.APImethod(param1,param2)”

classMethod = (param1, param2) =>
    {this.APImethod(param1, param2)}
不返回任何内容,因为如果键入{},则需要指定return语句。 等效功能为:

classMethod = (param1, param2) =>
    {return this.APImethod(param1, param2)}

希望这对某些人有用。

FWIW,Java中的箭头函数,Swift等。行为相同-
x->foo()
means
x->{return foo()}
(Java语法)。它是相当标准的,来自Haskell语言家族,它的灵感来自mathematicsOh函数的语法之一。我不知道其他语言也有同样的行为。有点道理。我只会说一口流利的JavaScript。
classMethod = (param1, param2) =>
    {return this.APImethod(param1, param2)}