【发布时间】:2020-12-11 21:02:30
【问题描述】:
我知道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的情况下完全一样。 -
在第一种情况下,args 是一个对象,它是一个类似数组
-
第二种情况,展开算子是一个纯数组
-
@AbdelrahmanHussien
argsArray也是一个标准的纯数组。
标签: javascript arrays arguments rest-parameters