为什么JavaScript中的rest parameters会这样调用?
答案 0 :(得分:3)
“rest”一词在那里用来表示参数值的 rest 的容器,其中可能有任何数字。
历史用法可能从Lisp Machine Lisp开始,在1981年第三版Lisp机器手册中有明确记载。 1974年,Maclisp或Interlisp中的行为或名称都没有“休息参数”。目前Common Lisp中的Rest参数与Lisp机器手册中的语法相同。 http://www.lispworks.com/documentation/HyperSpec/Body/03_dac.htm
首先在2012-07-12 ECMAScript 6 draft中引入关于ECMAScript的短语“rest parameters”。很明显,这句话应该被理解为Lisp之前建立的常见说法。如果真的很重要,我想我们可以问一下ECMA技术委员会秘书,Istvan Sebestyen博士,他的地址是他在ecma-international.org的第一个名字,是否有人愿意用这么多的话来说。 / p>
答案 1 :(得分:3)
它们被称为rest
参数,因为它们在调用函数时捕获参数的其余。
function multiply(multiplier, ...theArgs) {
return theArgs.map(function (element) {
return multiplier * element;
});
}
来自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/rest_parameters#Browser_compatibility
的示例 ...theArgs
捕获参数2+。换句话说,multiplier
是第一个参数,theArgs
是休息。