您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ES6+ of()

本节介绍 ES6 的数组的新增 Array.of() 该创建具有可变参数的新数组实例,而不考虑参数的或类型。Array.of() 主要是弥补数组构造 Array() 的不足。因为参数个数的不同,导致 Array() 的重载,Array.of 不存在由于参数不同而导致的重载,并且基本上可以用来替代 Array()new Array()

Array.of() 是创建数组的,它接收若干个参数,返回新的 Array 实例,类似 Array()

语法使用:

Array.of(element0[, element1[, ...[, elementN]]])

参数解释:

Array.of() 会按顺序接受 N 个参数,接收的所有参数都会成为新数组的项。

Array.of();          // [7] 
Array.of(, , );    // [1, 2, 3]
Array.of(undefined)   // [undefined]
Array.of().length    // 1

Array.of 的主要作用是弥补 Array() 的不足的,下面我们来看看他们有什么不同。

Array() 会根据接收的参数不同从而返回不同的数组,例如:

Array()               // []
Array()              // [, , ,]
Array(, )          // [2, 12]

Array.of()            // []
Array.of()           // [3]
Array.of(, , 'a')  // [2, 12, "a"]

Array 在没有参数、参数、两个参数时,返回结果都不一样。

由于参数的不同 Array 会进行重载,而且他们的行为也不一致,Array.of() 总会创建包含所有传入参数的数组,而不管参数的与类型。

如果原生的话,可以手动实现 Array.of()

if (!Array.of) {
  Array.of = function() {
    return Array.prototype.slice.call(arguments);
  };
}

使用 Arrayslice 把接收到的 arguments 参数,转化成数组的每一项。

本章讲解了 ES6 的 Array.of() ,该用于创建数组,主要为了替换 Array() ,弥补 Array() 的不足。


联系我
置顶