如何在const函数中获得参数值?

时间:2019-06-20 07:05:52

标签: javascript node.js ecmascript-6

下面是我的代码。

我想知道的是,当将参数传递给变量“ 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 :(得分:0)

您在评论中澄清了:

  

称为响应的函数似乎只有两个参数值。因此,我认为返回参数中名为“数据”的参数值不能导入“响应”函数内部的任何位置,但是不能导入。

我看到了您困惑的根源。在获得response时,您并没有调用data,而是在调用它返回的函数。

您在这里调用response并为其两个参数传递参数:

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

response返回一个函数,您要记住它在变量ok中。函数ok被调用时,将使用您传递的参数response及其 own 参数data。 (有关如何使用我贫乏的小博客上this question's answersa dated postresponse的参数的信息。)

因此,当您这样做时:

ok({foo: 'bar'})

您正在调用返回的函数response,并传入该函数的data参数的参数。