Spread和Rest操作符,长的一模一样,都是...
。他们的区别是什么?为什么会选用同样的操作符?
// User code of Array subclass
class MyArray extends Array {
constructor(...args) { super(...args); }
}
var arr = new MyArray();
arr[1] = 12;
arr.length == 2
通过这个简单的例子可以理解这两个操作符。
在构造函数中,通过Rest操作符将参数组合成一个args的数组;
调用super的时候,由于super的构造函数需要的是参数列表,不是数组,又通过Spread操作符扩散为参数列表;
Spead和Rest操作符存在的特殊意义是,JavaScript允许函数接受不定数目的参数。