Javascript 为我从未给出的参数创建变量名的函数
我正在从一本雄辩的书中学习JavaScript,在关于高阶函数的章节中,我发现了以下代码:Javascript 为我从未给出的参数创建变量名的函数,javascript,function,arguments,Javascript,Function,Arguments,我正在从一本雄辩的书中学习JavaScript,在关于高阶函数的章节中,我发现了以下代码: function noisy(f) { return function(...args) => { console.log("calling with", args); let result = f(...args); console.log("called with", args, "returned", re
function noisy(f) {
return function(...args) => {
console.log("calling with", args);
let result = f(...args);
console.log("called with", args, "returned", result);
return result;
};
}
noisy(Math.min)(3,2,1);
// calling with [3,2,1]
// called with [3,2,1] returned 1
我知道rest参数…args
接受许多参数并将它们分组到一个数组中,但是我什么时候给了arrow函数任何参数?args
是否自动包含传递给noised()
(只需要f
)的所有额外参数?如果是,这种使用参数的方法有哪些规则?
我可以只使用前两个额外参数吗?
原始代码不应该如下所示吗
function noisy(f, ...args) {
return function(args) => { // with the rest of the program
我什么时候给了arrow函数任何参数
您在noise(Math.min)(3,2,1)
的(3,2,1)
部分传递了它们noised()
返回一个函数,然后立即使用参数调用该函数(3,2,1)
打电话可能更清楚
var myArrowFunction=noised(Math.min)
MyArrow函数(3,2,1)
此示例显示了高阶函数的两个方面;能够将函数作为参数传递(传递Math.min
)以及能够将函数作为结果返回(返回箭头函数)我需要习惯返回的函数。感谢您的解释,我刚刚注意到(1,2,3)不是嘈杂的
的参数,但无论如何,最棘手的部分是确认noised
返回一个函数,而不是返回函数的返回值。