Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
transfer() は ArrayBuffer インスタンスのメソッドで、このバッファと同じバイト内容を持つ新しい ArrayBuffer を作成し、その後でこのバッファを分離します。
新しい ArrayBuffer の byteLength です。デフォルト値はこの ArrayBuffer の byteLength です。
新しい ArrayBuffer オブジェクトです。その内容は、この ArrayBuffer の内容で初期化され、余分なバイトがある場合はゼロで埋められます。新しい ArrayBuffer は、この ArrayBuffer がサイズ変更可能である場合にのみサイズ変更可能であり、その場合、その maxByteLength はこの ArrayBuffer のものと同じになります。元の ArrayBuffer は切り離されます。
この ArrayBuffer がサイズ変更可能であり、newByteLength がこの ArrayBuffer の maxByteLength を超える場合に発生します。
TypeErrorこの ArrayBuffer が既に分離されている場合、または指定された操作によってのみ分離可能な場合に発生します。現在、GPUBuffer.getMappedRange() や WebAssembly.Memory.buffer などの特定の Web API のみが、指定された分離メソッドを持つ ArrayBuffer オブジェクトを作成できます。
transfer() メソッドは、構造化クローンアルゴリズムと同じ操作を実行します。この ArrayBuffer のバイトを新しい ArrayBuffer オブジェクトにコピーし、その後この ArrayBuffer オブジェクトを分離します。詳細については、ArrayBuffer の移譲を参照してください。
transfer() はこの ArrayBuffer のサイズ変更可能状態を維持します。新しい ArrayBuffer をサイズ変更不可にしたい場合は、代わりに transferToFixedLength() を使用してください。固定長バッファーをサイズ変更可能状態にするバッファー転送方法はありません。
transfer()はとても効率的です。実装側がこのメソッドをゼロコピー移動やreallocとして実装できるため、データの実際のコピーが必要ないからです。
| ECMAScript® 2027 Language Specification # sec-arraybuffer.prototype.transfer |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月29日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.