Как тело передается в оператор return в этой функции - PullRequest
2 голосов
/ 09 июня 2019

Я прошел определенную кодовую базу и наткнулся на определение функции, как показано ниже:

function handleSuccess(res) {
    return (body = {}) =>
    res.status(statusCode).jsend.success({
        status: statusCode,
        success: true,
        ...body,
      })
}

Затем функция вызывается так:

handleSuccess(res)({ message: 'message' });

Кажется, я не понимаю, как тело ({message: 'message'}) передается в оператор return функции выше. Поэтому я был бы признателен за любую помощь в том, как эта функция работает в Javascript.

1 Ответ

5 голосов
/ 09 июня 2019

handleSuccess создает и возвращает функцию (используя функция стрелки синтаксис). Вызов к нему выполняется (в результате (res) после него), а затем функция, которую он возвращает, вызывается с объектом, созданным инициализатором объекта.

//  vvvvvvvvvvvvvvvvvv---------------------------- creates the function
    handleSuccess(res)({ message: 'message' });
//                    ^^^^^^^^^^^^^^^^^^^^^^^^ --- calls the function

Звонок на него также может быть написан так, что может быть понятнее:

const handler = handleSuccess(res);
handler({ message: 'message' });

Подробнее:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...