为什么JavaScript中的其余参数都是这样调用的?

时间:2013-04-25 15:50:00

标签: javascript

为什么JavaScript中的rest parameters会这样调用?

2 个答案:

答案 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休息