ES6+ Array.of()
1. 前言
本节介绍 ES6 的数组的新增方法 Array.of()
该方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。Array.of()
主要是弥补数组构造函数 Array()
的不足。因为参数个数的不同,导致 Array()
的重载,Array.of
不存在由于参数不同而导致的重载,并且基本上可以用来替代 Array()
或 new Array()
。
2. 方法详情
2.1 基本语法
语法使用:
Array.@H_502_53@of(element0[, element1[, ...[, elementN]]])
参数解释:
参数 | 描述 |
---|---|
elementN | 数组元素,可以是任意个参数,将按顺序成为返回数组中的元素 |
2.2 基本实例
Array.of()
会按顺序接受 N 个参数,接收的所有参数都会成为新数组的项。
Array.@H_502_53@of(); // [7]
Array.@H_502_53@of(, , ); // [1, 2, 3]
Array.@H_502_53@of(undefined) // [undefined]
Array.@H_502_53@of().length // 1
3. 对比 Array()
Array.of
的主要作用是弥补 Array()
的不足的,下面我们来看看他们有什么不同。
Array()
会根据接收的参数不同从而返回不同的数组,例如:
Array() // []
Array() // [, , ,]
Array(, ) // [2, 12]
Array.@H_502_53@of() // []
Array.@H_502_53@of() // [3]
Array.@H_502_53@of(, , 'a') // [2, 12, "a"]
4. 扩展
@H_502_53@if (!Array.@H_502_53@of) {
Array.of = @H_502_53@function() {
@H_502_53@return Array.prototype.slice.call(arguments);
};
}
使用 Array
的 slice
方法把接收到的 arguments
参数,转化成数组的每一项。