Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Seit March 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die transfer() Methode von ArrayBuffer Instanzen erstellt einen neuen ArrayBuffer mit demselben Byte-Inhalt wie dieser Puffer und trennt dann diesen Puffer ab.
Der byteLength des neuen ArrayBuffer. Standardmäßig ist dies der byteLength dieses ArrayBuffer.
Ein neues ArrayBuffer Objekt. Sein Inhalt wird auf den Inhalt dieses ArrayBuffer initialisiert, und zusätzliche Bytes, falls vorhanden, werden mit Nullen gefüllt. Der neue ArrayBuffer ist nur dann vergrößerbar, wenn auch dieser ArrayBuffer vergrößerbar ist, in diesem Fall ist sein maxByteLength das gleiche wie das dieses ArrayBuffer. Der ursprüngliche ArrayBuffer wird getrennt.
Wird ausgelöst, wenn dieser ArrayBuffer vergrößerbar ist und newByteLength größer ist als der maxByteLength dieses ArrayBuffer.
TypeErrorWird ausgelöst, wenn dieser ArrayBuffer bereits getrennt ist oder wenn er nur durch bestimmte Operationen getrennt werden kann. Derzeit sind es nur bestimmte Web-APIs, die in der Lage sind, ArrayBuffer Objekte mit bestimmten Trennmethoden zu erstellen, wie zum Beispiel GPUBuffer.getMappedRange() und WebAssembly.Memory.buffer.
Die transfer() Methode führt dieselbe Operation wie der Structured Clone Algorithmus aus. Sie kopiert die Bytes dieses ArrayBuffer in ein neues ArrayBuffer Objekt und trennt dann dieses ArrayBuffer Objekt. Weitere Informationen finden Sie unter Übergabe von ArrayBuffers.
transfer() bewahrt die Vergrößerbarkeit dieses ArrayBuffer. Wenn Sie möchten, dass der neue ArrayBuffer nicht vergrößerbar ist, verwenden Sie stattdessen transferToFixedLength(). Es gibt keinen Weg, einen Puffer zu übertragen, der einen Festlängenpuffer vergrößerbar macht.
transfer() ist sehr effizient, da Implementierungen diese Methode als Zero-Copy-Verschiebung oder als realloc implementieren können – es muss keine tatsächliche Kopie der Daten erfolgen.
| ECMAScript® 2027 Language Specification # sec-arraybuffer.prototype.transfer |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.