javascript - 隐式接受参数的函数
问题描述
我只是好奇为什么下面的函数工作得很好,尽管在它的定义中我们看不到任何定义的参数?
对于刚入门的 JS 开发人员来说,这似乎并不直观。
const add = () => {
return num => {
const result = num + 10;
return `Calculated! ${result}`;
};
};
const addFn = add()
console.log(addFn(5)) // Calculated! 15
解决方案
你说对了一部分。add
不接受任何论据。如果您提供任何内容,它们将被忽略。
但是当你打电话时add
,你会得到这个功能
num => {
const result = num + 10;
return `Calculated! ${result}`;
}
如果将其单个参数包装在括号中,则可能更容易将其识别为函数:
(num) => {
const result = num + 10;
return `Calculated! ${result}`;
}
这个新函数接受(大概)一个数字,将其加 10,并返回一个包含该结果的格式化字符串。
所以这:
const addFn = add()
简单地将 的值赋值为 的addFn
返回的这个函数add ()
,也就是我们上面描述的函数。
当我们用 调用它时5
,它会返回包含 的结果的格式化字符串10 + 5
。
这是否使它更清楚?
推荐阅读
- automation - Ansible:我如何使用“sudo su -c
" 以另一个用户的身份执行命令? - android - Android DatePicker 显示错误的月份值并禁用过去和日期不适用于约会
- arm - 从另一个内核读取 ARM PMU
- java - Basic Auth Authorization header 和 base 64 编码
- azure - 无法在 azure search 中搜索超过 20 个字符
- sql - 使用连接 sql 更新 | 错误:ORA-00933:SQL 命令未正确结束
- swift - 在 SwiftUI 中使用绑定值添加和删除列表部分
- makefile - GNU Make:在单个命令调用中批处理多个目标
- python - Python 矢量图缺少标签
- actions-on-google - 技能关闭和谷歌打开食谱