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 SharedArrayBuffer
-Methoden zu erstellen.
Warnung:
Die Existenz von [Symbol.species]
ermöglicht die Ausführung von beliebigem Code und kann Sicherheitslücken schaffen. Es erschwert auch bestimmte Optimierungen erheblich. Entwickler untersuchen derzeit ob dieses Feature entfernt werden soll. Wenn möglich, sollten Sie sich nicht darauf verlassen.
Syntax
SharedArrayBuffer[Symbol.species]
Rückgabewert
Der Wert des Konstruktors (this
), auf dem get [Symbol.species]
aufgerufen wurde. Der Rückgabewert wird verwendet, um Rückgabewerte aus Array-Buffer-Methoden zu erstellen, die einen neuen Array-Buffer erzeugen.
Beschreibung
Die Zugriffs-Eigenschaft [Symbol.species]
gibt den Standardkonstruktor für SharedArrayBuffer
-Objekte zurück. Unterklassige Konstruktoren können sie überschreiben, um die Zuweisung des Konstruktors zu ändern. Die Standardimplementierung ist im Grunde:
// 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 ebenfalls den Konstruktor selbst zurückgeben.
class SubArrayBuffer extends SharedArrayBuffer {}
SubArrayBuffer[Symbol.species] === SharedArrayBuffer; // true
Beim Aufrufen von Array-Buffer-Methoden, die das bestehende Array nicht verändern, sondern eine neue Array-Buffer-Instanz zurückgeben (zum Beispiel slice()
), wird auf den Konstruktor constructor[Symbol.species]
des Arrays zugegriffen. Der zurückgegebene Konstruktor wird verwendet, um den Rückgabewert der Array-Buffer-Methode zu erstellen.
Beispiele
Species in gewöhnlichen Objekten
Die [Symbol.species]
-Eigenschaft gibt die Standardkonstruktorfunktion zurück, die für SharedArrayBuffer
der SharedArrayBuffer
-Konstruktor 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. Allerdings möchten Sie diesen möglicherweise überschreiben, um in Ihren abgeleiteten Klassenmethoden Eltern-SharedArrayBuffer
-Objekte zurückzugeben:
class MySharedArrayBuffer extends SharedArrayBuffer {
// Overwrite MySharedArrayBuffer species to the parent SharedArrayBuffer constructor
static get [Symbol.species]() {
return SharedArrayBuffer;
}
}
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-sharedarraybuffer-%symbol.species% |
Browser-Kompatibilität
BCD tables only load in the browser