Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Depuis March 2024, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode transfer() des instances de ArrayBuffer crée un nouveau tableau de mémoire tampon (array buffer en anglais) contenant les mêmes octets que ce tableau, puis détache ce tableau.
La longueur byteLength du nouveau tableau de mémoire tampon. Par défaut, il s'agit de la valeur de byteLength de ce tableau de mémoire tampon.
Un nouvel objet ArrayBuffer. Son contenu est initialisé avec le contenu de ce ArrayBuffer, et les octets supplémentaires, le cas échéant, sont remplis de zéros. Le nouveau ArrayBuffer est redimensionnable si, et seulement si, ce ArrayBuffer est redimensionnable, auquel cas sa valeur de maxByteLength est la même que celle de ce ArrayBuffer. Le ArrayBuffer d'origine est détaché.
Levée si ce ArrayBuffer est redimensionnable et que newByteLength est supérieur à la valeur de maxByteLength de ce ArrayBuffer.
TypeErrorLevée si ce ArrayBuffer est déjà détaché, ou s'il ne peut être détaché que par des opérations désignées. Actuellement, seules certaines API web sont capables de créer des objets ArrayBuffer avec des méthodes de détachement désignées, comme GPUBuffer.getMappedRange() et WebAssembly.Memory.buffer.
La méthode transfer() effectue la même opération que l'algorithme de clonage structuré. Elle copie les octets de ce ArrayBuffer dans un nouveau ArrayBuffer, puis détache ce ArrayBuffer. Voir transfert des ArrayBuffer pour plus d'informations.
transfer() préserve la capacité de redimensionnement de ce ArrayBuffer. Si vous souhaitez que le nouveau ArrayBuffer ne soit pas redimensionnable, utilisez plutôt transferToFixedLength(). Il n'existe aucun moyen de transférer un buffer qui rend un ArrayBuffer à longueur fixe redimensionnable.
transfer() est très efficace car les implémentations peuvent réaliser cette méthode comme un déplacement sans copie ou un realloc — il n'est pas nécessaire de copier effectivement les données.
| ECMAScript® 2027 Language Specification # sec-arraybuffer.prototype.transfer |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 5 nov. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.