0

我知道它Array.prototype.slice.call(arguments)用于将参数创建到一个真实的数组中,如下所示:

function foo() {
  // convert arguments to an array:
  var argsArray = Array.prototype.slice.call(arguments);
  // . . . foo's logic . . .
}

我也可以使用spread operator来实现与以下相同的功能

function foo(...argsArray) {
  // . . . foo's logic . . .
} 

除了在使用方面不那么冗长之外spread operator,这两种方法之间有什么区别?

4

1 回答 1

0

在您的示例中,两种变体应该相同。

arguments 对象主要用在 rest 参数之前,而扩展运算符是一个东西。根据 MDN,它不应再用于现代 JavaScript:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

于 2020-08-22T19:53:49.730 回答