Array.prototype.slice.call(arguments) 与 [...args] 之间有什么区别?
What is the difference between Array.prototype.slice.call(arguments) vs [...args]?
我知道 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
时不那么冗长之外,这两种方法之间有什么区别?
在您的示例中,两种变体的工作方式应该相同。
arguments 对象主要在 rest parameters 之前使用,spread operator 是一个东西。根据 MDN,现代 JavaScript 不应再使用它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
我知道 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
时不那么冗长之外,这两种方法之间有什么区别?
在您的示例中,两种变体的工作方式应该相同。
arguments 对象主要在 rest parameters 之前使用,spread operator 是一个东西。根据 MDN,现代 JavaScript 不应再使用它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments