此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Array.of()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年9月.
Array.of() 静态方法通过可变数量的参数创建一个新的Array 实例,而不考虑参数的数量或类型。
In this article
尝试一下
console.log(Array.of("foo", 2, "bar", true));// Expected output: Array ["foo", 2, "bar", true]console.log(Array.of());// Expected output: Array []语法
js
Array.of()Array.of(element0)Array.of(element0, element1)Array.of(element0, element1, /* … ,*/ elementN)参数
elementN用于创建数组的元素。
返回值
新的Array 实例。
描述
Array.of() 和Array() 构造函数之间的区别在于对单个参数的处理:Array.of(7) 创建一个具有单个元素7 的数组,而Array(7) 创建一个length 为7 的空数组(这意味着一个由 7 个空槽组成的数组,而不是由 7 个undefined 组成的数组)。
js
Array.of(7); // [7]Array(7); // 由 7 个空槽组成的数组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()
js
Array.of(1); // [1]Array.of(1, 2, 3); // [1, 2, 3]Array.of(undefined); // [undefined]非数组构造函数调用 of()
of() 方法可以在任何接受单个参数表示新数组长度的构造函数上调用。
js
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 对象。
js
console.log(Array.of.call({}, 1)); // [ 1 ]规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.of> |