функция, отправленная другим функциям в качестве аргументов - PullRequest
0 голосов
/ 16 февраля 2019

Я читал книгу о реакции и был в главе функционального программирования, когда столкнулся с этим.

const insideFn = logger =>
    logger("They can be sent to other functions as arguments");
insideFn(message => console.log(message))
// They can be sent to other functions as arguments

Теперь я совершенно сбит с толку:

  1. Вывод insideFn является аргументом функции logger, просто аргументом, он не возвращается из logger функция.Так почему же вывод insideFn, аргумент logger?
  2. Я пытался проверить тип message - результат был строкой.Почему это строка?Разве message не является функцией?
  3. Я ожидал, что когда мы создаем console.log сообщения, оно должно вернуть определение функции logger, но оно возвращает свой аргумент?Это не имеет смысла для меня?

Спасибо, что объяснили.

1 Ответ

0 голосов
/ 16 февраля 2019

Функции стрелок делают это немного запутанным.Может быть, более подробный пример будет более понятным:

function insideFn(logger) {
    logger("inside's log message");
    // some computation here
    return 42;
}

function myLogger(message) {
    console.log(message);
}
insideFn(myLogger);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...