javascript的“返回函数(…args)”代码是如何工作的?

f0brbegy  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(172)

此问题已在此处找到答案

函数定义中“…args”(三个点)的含义是什么((3个答案)
返回函数的函数(9个答案)
javascript闭包是如何工作的((86个答案)
var functionname=function(){}vs function functionname(){}(39个答案)
4小时前关门了。
我在读这本书:
javascript最终指南
在理解8.3.4中给出的示例代码作为函数调用的扩展运算符时遇到了一个问题。
代码如下:

// This function takes a function and returns a wrapped version
function timed(f) {
 return function(...args) { // Collect args into a rest parameter array
 console.log(`Entering function ${f.name}`);
 let startTime = Date.now();
 try {
 // Pass all of our arguments to the wrapped function
 return f(...args); // Spread the args back out again
 }
 finally {
 // Before we return the wrapped return value, print elapsed time.
 console.log(`Exiting ${f.name} after ${Date.now()-startTime}ms`);
 }
};
}
// Compute the sum of the numbers between 1 and n by brute force
function benchmark(n) {
 let sum = 0;
 for(let i = 1; i <= n; i++) sum += i;
 return sum;
}

当调用时,会给出

// Now invoke the timed version of that test function
timed(benchmark)(1000000) 
Entering function benchmark
Exiting benchmark after 11ms
500000500000

我的问题
我无法理解这两条js语句的用途和工作原理?

// 1st
return function(...args)

//2nd
return f(...args);

我没有见过没有名字的函数。请帮助我理解。
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题