Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】ArrayBuffer::ArrayBuffer.prototype.transferインスタンスメソッドの使い方

ArrayBuffer.prototype.transfer()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

ArrayBuffer.prototype.transfer()メソッドは、既存のArrayBufferオブジェクトが内部に保持している生バイトデータの内容を、新しいArrayBufferオブジェクトへ効率的に移動させることを実行するメソッドです。このメソッドが呼び出されると、元のArrayBufferオブジェクトが持っていたデータは新しいArrayBufferに完全に移管されます。その結果、元のArrayBufferオブジェクトは「切り離された(detached)」状態となり、その内容を参照したり操作したりすることができなくなります。切り離されたArrayBufferのbyteLengthプロパティは0になり、事実上使用不能になります。

新しいArrayBufferオブジェクトは、元のデータの完全なコピーではなく、メモリの所有権自体が移動するため、特に大量のデータを扱う際にパフォーマンス上の大きなメリットがあります。データのコピーには時間がかかり、余分なメモリも消費しますが、transfer()メソッドは所有権を移すことで、これらのオーバーヘッドを回避します。これにより、Web Workers間のような異なるJavaScript実行コンテキスト間で、大容量のArrayBufferを効率的にやり取りすることが可能になります。この機能は、データ処理の高速化やメモリ利用の最適化に貢献し、特にパフォーマンスが要求されるアプリケーション開発において重要な役割を果たします。

公式リファレンス: ArrayBuffer.prototype.transfer()

構文(syntax)

1const originalBuffer = new ArrayBuffer(8);
2const newBuffer = originalBuffer.transfer(16);

引数(parameters)

引数なし

引数はありません

戻り値(return)

ArrayBuffer

ArrayBuffer.prototype.transfer() メソッドは、元の ArrayBuffer の内容を新しい ArrayBuffer に移動させた、新しい ArrayBuffer オブジェクトを返します。

関連コンテンツ