JavaScript箭头功能

时间:2019-01-23 06:54:11

标签: javascript lambda callback anonymous-function arrow-functions

我看过一些看起来像这样的代码:

function printErr(err) {
    console.error(err)
}
request.on('error', err => printErr)

这是如何工作的?我花了几个小时试图找出答案并在各处搜索。我知道printErr是一个带有要返回的函数的对象,但是让它将err参数放入函数并调用它的机制是什么?

我正在考虑以下方面:

function foo(callback){
    callback()
}

request.on('error', err => foo)

但是它如何获得参数呢?

2 个答案:

答案 0 :(得分:0)

这是箭头功能的简写。只要只有one argument,即使没有parentheses,我们也可以调用它,而=>代表return。当只有一行return时,我们可以显式使用=>进行返回,而不必使用return。

var a=e=>"hey";
console.log(a())

与上面相同

var a=(e)=>{return "hey"};
console.log(a())

答案 1 :(得分:0)

起初我很困惑,但这是因为我正在分析的代码是错误的。

简化

function print(data) {
    console.log(data)
}

const foo = [1,2,3,4]

foo.forEach(x => print) // will not print and just return undefined.
foo.forEach(x => print(x)) // will print correctly