下面是我的代码。
我想知道的是,当将参数传递给变量“ 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"}"}
答案 0 :(得分:0)
您在评论中澄清了:
称为响应的函数似乎只有两个参数值。因此,我认为返回参数中名为“数据”的参数值不能导入“响应”函数内部的任何位置,但是不能导入。
我看到了您困惑的根源。在获得response
时,您并没有调用data
,而是在调用它返回的函数。
您在这里调用response
并为其两个参数传递参数:
const ok = response(200, JSON.stringify);
response
返回一个函数,您要记住它在变量ok
中。函数ok
被调用时,将使用您传递的参数response
及其 own 参数data
。 (有关如何使用我贫乏的小博客上this question's answers和a dated post中response
的参数的信息。)
因此,当您这样做时:
ok({foo: 'bar'})
您正在调用返回的函数response
,并传入该函数的data
参数的参数。