我遇到了这个小练习,我不确定“ arguments”关键字在这里的工作方式以及为什么(... arr)放在a的声明括号之外的原因... < / p>
var arr = ["tic", "tac", "toe"];
var a = (
function() {
return arguments[2];
}
)(...arr);
console.log(a);
由于我不确定我真正要寻找的是什么,请您解释一下或指出我的相关信息吗?谢谢。
答案 0 :(得分:0)
arguments
是传递给当前函数的参数数组。在上面的代码示例中,括号内的函数以...args
作为参数被调用。
在JS中,您无需命名函数即可调用它。上面的代码等效于以下代码:
var arr = ["tic", "tac", "toe"];
var callme = function() {
return arguments[2];
}
var a = callme(...arr);
console.log(a);
函数调用中的参数以“扩展语法”传递。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
因此,该函数将以arr
的值作为参数进行调用,并返回第三个参数arguments[2]
。