Функции стрелок JavaScript - PullRequest
       31

Функции стрелок JavaScript

0 голосов
/ 23 января 2019

Я видел некоторый код, который выглядит следующим образом:

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

Как это работает?Я потратил часы, пытаясь понять это, и везде искал это.Я знаю, что printErr - это объект с возвращаемой функцией, но каков механизм, который позволяет ему помещать параметр err в функцию и вызывать его?

Я имею в виду:

function foo(callback){
    callback()
}

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

Но как получить аргументы?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Сначала я был сбит с толку, но это было потому, что код, который я анализировал, был ошибочным.

для упрощения

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
0 голосов
/ 23 января 2019

Это короткая стрелка для функции стрелки. Когда есть только one argument, мы можем назвать его даже без parentheses, а => представляет return. Когда есть только одна строка return, мы можем явно использовать => для возврата вместо использования return.

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

Это то же самое, что и выше

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