猿问

函数隐式接受参数

我只是好奇为什么下面的函数工作得很好,尽管在它的定义中我们看不到任何定义的参数?


对于刚入门的 JS 开发人员来说,这似乎并不直观。


const add = () => {

    return num => {

        const result = num + 10;

        return `Calculated! ${result}`;

    };

};


const addFn = add()

console.log(addFn(5)) // Calculated! 15


跃然一笑
浏览 64回答 1
1回答

桃花长相依

你说对了一部分。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。这样是不是更清楚了?
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答