为什么 JavaScript 中的rest 参数是这样称呼的?
2 回答
它们被称为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
是其余的。
此处使用“rest”一词来表示其余参数值的容器,其中可能有任意数量。
它的历史用法可能从Lisp Machine Lisp开始,在 1981 年第三版的 Lisp Machine Manual 中明确记录。在 1974 年,Maclisp 或 Interlisp 中都没有这种行为或那个名称的“休息参数”。目前 Common Lisp 中的休息参数与 Lisp 机器手册中的语法相同。 http://www.lispworks.com/documentation/HyperSpec/Body/03_dac.htm
在2012-07-12 ECMAScript 6 草案中首次引入了与 ECMAScript 相关的短语“rest parameters” 。很明显,那里的短语应该被理解为 Lisp 先前建立的常用用语。如果这真的很重要,我想我们可以问问 ECMA 技术委员会 39 的秘书 Istvan Sebestyen 博士,他的地址是他在 ecma-international.org 上的名字,是否有人愿意用这么多的话说出来。