Javascript 隐式接受参数的函数
我只是好奇为什么下面的函数工作得很好,尽管在它的定义中我们看不到任何定义的参数 对于一个刚起步的JS开发人员来说,这似乎并不直观Javascript 隐式接受参数的函数,javascript,Javascript,我只是好奇为什么下面的函数工作得很好,尽管在它的定义中我们看不到任何定义的参数 对于一个刚起步的JS开发人员来说,这似乎并不直观 const add = () => { return num => { const result = num + 10; return `Calculated! ${result}`; }; }; const addFn = add() console.log(addFn(5)) // Calculated
const add = () => {
return num => {
const result = num + 10;
return `Calculated! ${result}`;
};
};
const addFn = add()
console.log(addFn(5)) // Calculated! 15
你部分是对的<代码>添加不接受任何参数。如果您提供任何,它们将被忽略 但是,当您调用
add
时,您将返回该函数
num=>{
const result=num+10;
返回`computed!${result}`;
}
如果将其单个参数括在括号中,则更容易将其识别为函数:
(num)=>{
const result=num+10;
返回`computed!${result}`;
}
这个新函数接受(大概)一个数字,加上10,并返回一个包含该结果的格式化字符串
因此:
const addFn=add()
只需将addFn
的值赋值为add()
返回的函数,即我们上面描述的函数
当我们用5
调用它时,它返回包含10+5
结果的格式化字符串
这是否更清楚了?这被称为
关闭
,您可以在这里阅读:@zb22:注意,在这种情况下,没有值被关闭。add
函数没有参数,返回函数可以访问的范围内也没有局部变量。