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 September 2016.

Die statische Methode Array.of() erstellt eine neue Array-Instanz aus einer variablen Anzahl von Argumenten, unabhängig von der Anzahl oder dem Typ der Argumente.

Probieren Sie es aus

console.log(Array.of("foo", 2, "bar", true));
// Expected output: Array ["foo", 2, "bar", true]

console.log(Array.of());
// Expected output: Array []

Syntax

js
Array.of()
Array.of(element1)
Array.of(element1, element2)
Array.of(element1, element2, /* …, */ elementN)

Parameter

element1, …, elementN

Elemente, die verwendet werden, um das Array zu erstellen.

Rückgabewert

Eine neue Array-Instanz.

Beschreibung

Der Unterschied zwischen Array.of() und dem Array()-Konstruktor liegt in der Verarbeitung von Einzelargumenten: Array.of(7) erstellt ein Array mit einem einzigen Element, 7, während Array(7) ein leeres Array mit einer length-Eigenschaft von 7 erstellt. (Das impliziert ein Array mit 7 leeren Slots, nicht Slots mit tatsächlichen undefined-Werten.)

js
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]

Die Methode Array.of() ist eine allgemeine Fabrikmethode. Wenn z. B. eine Unterklasse von Array die Methode of() erbt, gibt die geerbte of()-Methode neue Instanzen der Unterklasse zurück, anstatt Array-Instanzen. Tatsächlich kann der this-Wert jede Konstruktorfunktion sein, die ein einziges Argument akzeptiert, das die Länge des neuen Arrays darstellt, und der Konstruktor wird mit der Anzahl der Argumente, die an of() übergeben wurden, aufgerufen. Die endgültige length-Eigenschaft wird erneut festgelegt, wenn alle Elemente zugewiesen sind. Wenn der this-Wert keine Konstruktorfunktion ist, wird stattdessen der einfache Array-Konstruktor verwendet.

Beispiele

Verwendung von Array.of()

js
Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]

Aufruf von of() bei Nicht-Array-Konstruktoren

Die Methode of() kann bei jeder Konstruktorfunktion aufgerufen werden, die ein einzelnes Argument akzeptiert, das die Länge des neuen Arrays darstellt.

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 }

Wenn der this-Wert kein Konstruktor ist, wird ein einfaches Array-Objekt zurückgegeben.

js
console.log(Array.of.call({}, 1)); // [ 1 ]

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-array.of

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
of

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch