Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 标准内置对象
  5. Array
  6. Array.of()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

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 实例,而不考虑参数的数量或类型。

尝试一下

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) 创建一个length7 的空数组(这意味着一个由 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

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp