Array.of()
基线 广泛可用
此功能已建立完善,可在许多设备和浏览器版本上运行。它自 2016 年 9 月.
报告反馈
试试看
语法
The
Array.of()
静态方法从可变数量的参数创建一个新的 Array
实例,无论参数的数量或类型如何。Array.of()
Array.of(element1)
Array.of(element1, element2)
Array.of(element1, element2, /* …, */ elementN)
js
element1
, …,elementN
-
用于创建数组的元素。
返回值
一个新的 Array
实例。
描述
Array.of()
与 Array()
构造函数之间的区别在于处理单个参数的方式:Array.of(7)
创建一个包含单个元素 7
的数组,而 Array(7)
创建一个具有 length
属性为 7
的空数组。(这意味着一个包含 7 个空槽的数组,而不是包含实际 undefined
值的槽位。)
The
Array.of()
静态方法从可变数量的参数创建一个新的 Array
实例,无论参数的数量或类型如何。Array.of(7); // [7]
Array(7); // array of 7 empty slots
Array.of(1, 2, 3); // [1, 2, 3]
Array(1, 2, 3); // [1, 2, 3]
Array.of()
方法是一个通用的工厂方法。例如,如果 Array
的子类继承了 of()
方法,则继承的 of()
方法将返回子类的新的实例,而不是 Array
实例。事实上,this
值可以是任何构造函数,只要它接受一个表示新数组长度的单个参数,并且构造函数将使用传递给 of()
的参数数量进行调用。最终的 length
将在所有元素分配后再次设置。如果 this
值不是构造函数,则使用普通的 Array
构造函数。
示例
使用 Array.of()
The
Array.of()
静态方法从可变数量的参数创建一个新的 Array
实例,无论参数的数量或类型如何。Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]
在非数组构造函数上调用 of()
of()
方法可以调用任何接受一个表示新数组长度的单个参数的构造函数。
The
Array.of()
静态方法从可变数量的参数创建一个新的 Array
实例,无论参数的数量或类型如何。function NotArray(len) {
console.log("NotArray called with length", len);
}
console.log(Array.of.call(NotArray, 1, 2, 3));
// NotArray called with length 3
// NotArray { '0': 1, '1': 2, '2': 3, length: 3 }
console.log(Array.of.call(Object)); // [Number: 0] { length: 0 }
当 this
值不是构造函数时,会返回一个普通的 Array
对象。
The
Array.of()
静态方法从可变数量的参数创建一个新的 Array
实例,无论参数的数量或类型如何。console.log(Array.of.call({}, 1)); // [ 1 ]
规范
规范 |
---|
ECMAScript 语言规范 # sec-array.of |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。