Как получить значение параметра в константной функции? - PullRequest
2 голосов
/ 20 июня 2019

Ниже приведен мой код.

Что мне интересно, так это как передать данные возвращаемого параметра в функцию-стрелку «response» при передаче параметра в переменную «ok».

const response = (statusCode, formatter = null) => {
    const hasFormatter = typeof formatter === 'function';
    const format = hasFormatter ? formatter : _ => _;

    return (data = null) => {
        const response = {
            statusCode: statusCode
        };

        // Why is the data delivered??
        if (data) {
            response.body = format(data);
        }

        return response;
    }
};

const ok = response(200, JSON.stringify);

// Here, I put the parameter value({foo: 'bar'}) in the variable 'ok'.
console.log( ok({foo: 'bar'}) );
// {statusCode: 200, body: "{"foo":"bar"}"}

1 Ответ

0 голосов
/ 20 июня 2019

В комментарии вы уточнили:

Кажется, что функция reponse имеет только два значения параметра. Поэтому я подумал, что значение параметра с именем «data» в возвращаемом параметре нельзя импортировать нигде внутри функции «reponse», но это не так.

Я вижу источник вашего замешательства. Вы не вызываете response в тот момент, когда получаете data, вы вызываете функцию, которую возвращает .

Здесь вы вызываете response и передаете ему аргументы для обоих его параметров:

const ok = response(200, JSON.stringify);

response возвращает функцию, которую вы помните в переменной ok. Функция ok при вызове использует переданные вами параметры response, а также свой собственный параметр data. (Подробнее о том, как он может использовать параметры response в ответах на этот вопрос и в датированном посте в моем анемичном небольшом блоге.)

Итак, когда вы делаете это:

ok({foo: 'bar'})

вы вызываете функцию response, возвращаемую, передавая аргумент для параметра data функции.

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