Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

ArrayBuffer.transfer()

この記事は編集レビューを必要としています。ぜひご協力ください

この翻訳は不完全です。英語から この記事を翻訳 してください。

This is an experimental technology, part of the ECMAScript 2016 (ES7) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

概要

静的なArrayBuffer.transfer() メソッドは、oldBufferのデータから得られる内容の新しいArrayBufferを返します。newByteLengthによって切断されるかゼロ拡張されます。newByteLengthundefinedなら、oldBufferbyteLengthが使われます。この操作は切り離された状態でoldBufferを見捨てます。

構文

ArrayBuffer.transfer(oldBuffer [, newByteLength]);

引数

oldBuffer
転送するためのArrayBufferオブジェクト
newByteLength
新しいArrayBufferオブジェクトのバイト長

説明

ArrayBuffer.transfer() メソッドによって、ArrayBufferオブジェクトを成長し、デタッチできます。コピーなしでArrayBufferを成長される能力は大規模バッファに対してもっと早くなる利点を持っています。ArrayBufferをデタッチする能力は根本的にメモリがリリースされるときを開発者が明示的に制御することができます。これにより、すべての参照を削除し、ガベージコレクションを待つことを避けます。

var buf1 = new ArrayBuffer(40);
new Int32Array(buf1)[0] = 42;

var buf2 = ArrayBuffer.transfer(buf1, 80);
buf1.byteLength; // 0
buf2.byteLength; // 80
new Int32Array(buf2)[0]; // 42

var buf3 = ArrayBuffer.transfer(buf2, 0);
buf2.byteLength; // 0
buf3.byteLength; // 0

仕様

すべての現在の仕様のドラフトではサポートされていません。しかし、ES7に対して提案されています

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 未サポート Available in Nightly channel only (since 2014-10-20) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート Available in Nightly channel only (since 2014-10-20) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: Ragg, shide55
 最終更新者: Ragg,