このページはコミュニティーの尽力で英語から翻訳されました。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));// 予想される結果: Array ["foo", 2, "bar", true]console.log(Array.of());// 予想される結果: Array []構文
Array.of()Array.of(element1)Array.of(element1, element2)Array.of(element1, element2, /* …, */ elementN)引数
element1, …,elementN生成する配列の要素。
返値
新しいArray インスタンス。
解説
Array.of() とArray() コンストラクターの違いは整数引数の扱いにあります。Array.of(7) は単一の要素、7 を持つ配列を作成しますが、Array(7) はlength プロパティが 7 の空の配列を作成します(これはundefined の値を持つ実在のスロットではなく、7 つの空のスロットの配列を意味します)。
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() の使用
Array.of(1); // [1]Array.of(1, 2, 3); // [1, 2, 3]Array.of(undefined); // [undefined]配列以外のコンストラクターに対する of() の呼び出し
of() メソッドは、新しい配列の長さを表す単一の引数を受け入れるコンストラクター関数で呼び出すことができます。
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 オブジェクトを返します。
console.log(Array.of.call({}, 1)); // [ 1 ]仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.of> |