9

为什么 JavaScript 中的rest 参数是这样称呼的?

4

2 回答 2

7

它们被称为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其余的。

于 2013-04-25T15:53:31.723 回答
6

此处使用“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 上的名字,是否有人愿意用这么多的话说出来。

于 2013-04-25T15:52:02.690 回答