函数中的args和参数之间有什么区别?

ste*_*mao 0 javascript function ecmascript-6

有什么区别

function(...args) {
  // args is an array
}
Run Code Online (Sandbox Code Playgroud)

function() {
  // arguments is an array-like
}
Run Code Online (Sandbox Code Playgroud)

由于将数组转换为数组很容易,还有其他差异吗?

一个类似的问题:

myFunction.apply(null, args);
Run Code Online (Sandbox Code Playgroud)

myFunction(...args);
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 6

  1. ...args是新的; 直到ES6才可用
  2. 您可以将它用于参数结构的一部分: function(foo, bar, ...others)
  3. 你得到一个数组,所以没有了 Array.prototype.slice.call(arguments, 0)
  4. ...args 代码读者更明显
  5. 现在我们有火柴和打火机,我们不需要用棍子擦火

然而,作为1的推论,并非所有东西都支持它.