繁体   English   中英

隐式接受 arguments 的函数

[英]Functions implicitly taking in arguments

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

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

const add = () => {
    return num => {
        const result = num + 10;
        return `Calculated! ${result}`;
    };
};

const addFn = add()
console.log(addFn(5)) // Calculated! 15

你说对了一部分。 add不需要 arguments。 如果您提供任何内容,它们将被忽略。

但是当你调用add时,你会得到 function

num => {
    const result = num + 10;
    return `Calculated! ${result}`;
}

如果将其单个参数括在括号中,则可能更容易识别为 function:

(num) => {
    const result = num + 10;
    return `Calculated! ${result}`;
}

这个新的 function 采用(大概)一个数字,将其加 10,并返回包含该结果的格式化字符串。

所以这:

const addFn = add()

简单地将addFn的值赋值为add ()返回的这个 function ,即我们上面描述的 function 。

当我们用5调用它时,它会返回包含10 + 5结果的格式化字符串。

这是否使它更清楚?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM