SharedArrayBuffer()-Konstruktor

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.

* Some parts of this feature may have varying levels of support.

Hinweis: Der SharedArrayBuffer-Konstruktor ist möglicherweise nicht immer global verfügbar, es sei denn, bestimmte Sicherheitsanforderungen sind erfüllt.

Der SharedArrayBuffer()-Konstruktor erstellt SharedArrayBuffer-Objekte.

Probieren Sie es aus

// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(8);

console.log(buffer.byteLength);
// Expected output: 8

Syntax

js
new SharedArrayBuffer(length)
new SharedArrayBuffer(length, options)

Hinweis: SharedArrayBuffer() kann nur mit new konstruiert werden. Der Versuch, ihn ohne new aufzurufen, löst einen TypeError aus.

Parameter

length

Die Größe des zu erstellenden Array-Puffers in Bytes.

options Optional

Ein Objekt, das folgende Eigenschaften enthalten kann:

maxByteLength Optional

Die maximale Größe in Bytes, auf die der gemeinsame Array-Puffer vergrößert werden kann.

Rückgabewert

Ein neues SharedArrayBuffer-Objekt der angegebenen Größe, dessen maxByteLength-Eigenschaft auf den angegebenen maxByteLength gesetzt ist, falls dieser angegeben wurde. Der Inhalt ist auf 0 initialisiert.

Beispiele

Verwenden Sie immer den new-Operator, um einen SharedArrayBuffer zu erstellen

SharedArrayBuffer-Konstruktoren müssen mit einem new-Operator konstruiert werden. Das Aufrufen eines SharedArrayBuffer-Konstruktors als Funktion ohne new löst einen TypeError aus.

js
const sab = SharedArrayBuffer(1024);
// TypeError: calling a builtin SharedArrayBuffer constructor
// without new is forbidden
js
const sab = new SharedArrayBuffer(1024);

Erweitern eines erweiterbaren SharedArrayBuffer

In diesem Beispiel erstellen wir einen 8-Byte-Puffer, der auf eine maximale Länge von 16 Bytes erweiterbar ist, und erhöhen() ihn dann auf 12 Bytes:

js
const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 });

buffer.grow(12);

Hinweis: Es wird empfohlen, maxByteLength auf den kleinstmöglichen Wert für Ihren Anwendungsfall zu setzen. Es sollte niemals 1073741824 (1GB) überschreiten, um das Risiko von Speicherfehlern zu reduzieren.

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-sharedarraybuffer-constructor

Browser-Kompatibilität

Siehe auch