SharedArrayBuffer[Symbol.species]
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.
Die statische Zugriffs-Eigenschaft SharedArrayBuffer[Symbol.species]
gibt den Konstruktor zurück, der verwendet wird, um Rückgabewerte aus Methoden von SharedArrayBuffer
zu konstruieren.
Warnung:
Die Existenz von [Symbol.species]
ermöglicht die Ausführung von beliebigem Code und kann Sicherheitslücken schaffen. Sie erschwert auch bestimmte Optimierungen. Entwickler von Engines untersuchen, ob diese Funktion entfernt werden soll. Vermeiden Sie es, sich darauf zu verlassen, wenn möglich.
Syntax
SharedArrayBuffer[Symbol.species]
Rückgabewert
Der Wert des Konstruktors (this
), für den get [Symbol.species]
aufgerufen wurde. Der Rückgabewert wird verwendet, um Rückgabewerte aus Methoden von Array-Puffern zu konstruieren, die neue Array-Puffer erstellen.
Beschreibung
Die Zugriffs-Eigenschaft [Symbol.species]
gibt den Standardkonstruktor für SharedArrayBuffer
-Objekte zurück. Unterklassenkonstruktoren können sie überschreiben, um die Konstruktorzuweisung zu ändern. Die Standardimplementierung ist im Wesentlichen:
// Hypothetical underlying implementation for illustration
class SharedArrayBuffer {
static get [Symbol.species]() {
return this;
}
}
Aufgrund dieser polymorphen Implementierung würde [Symbol.species]
von abgeleiteten Unterklassen standardmäßig auch den Konstruktor selbst zurückgeben.
class SubArrayBuffer extends SharedArrayBuffer {}
SubArrayBuffer[Symbol.species] === SubArrayBuffer; // true
Beim Aufrufen von Array-Puffer-Methoden, die das vorhandene Array nicht ändern, sondern eine neue Array-Puffer-Instanz zurückgeben (zum Beispiel slice()
), wird auf constructor[Symbol.species]
des Arrays zugegriffen. Der zurückgegebene Konstruktor wird verwendet, um den Rückgabewert der Array-Puffer-Methode zu konstruieren.
Beispiele
Species in gewöhnlichen Objekten
Die Eigenschaft [Symbol.species]
gibt die Standard-Konstruktionsfunktion zurück, die der SharedArrayBuffer
-Konstruktor für SharedArrayBuffer
ist.
SharedArrayBuffer[Symbol.species]; // function SharedArrayBuffer()
Species in abgeleiteten Objekten
In einer Instanz einer benutzerdefinierten SharedArrayBuffer
-Unterklasse, wie MySharedArrayBuffer
, ist die Species von MySharedArrayBuffer
der MySharedArrayBuffer
-Konstruktor. Möglicherweise möchten Sie dies jedoch überschreiben, um in Ihren abgeleiteten Klassenmethoden Objekte des übergeordneten SharedArrayBuffer
zurückzugeben:
class MySharedArrayBuffer extends SharedArrayBuffer {
// Overwrite MySharedArrayBuffer species to the parent SharedArrayBuffer constructor
static get [Symbol.species]() {
return SharedArrayBuffer;
}
}
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-sharedarraybuffer-%symbol.species% |
Browser-Kompatibilität
BCD tables only load in the browser