[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer [Back]  [Original]

ArrayBuffer.prototype.transfer() - JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

ArrayBuffer.prototype.transfer()

Baseline 2024
Newly available

Since 2024 3, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

ArrayBuffer transfer() ArrayBuffer .

In this article

js
transfer()
transfer(newByteLength)

newByteLength Optional

ArrayBuffer byteLength. ArrayBuffer byteLength.

  • newByteLength ArrayBuffer byteLength "" .
  • newByteLength ArrayBuffer byteLength 0 .
  • ArrayBuffer newByteLength maxByteLength .

ArrayBuffer . ArrayBuffer , 0 . ArrayBuffer ArrayBuffer , maxByteLength ArrayBuffer . ArrayBuffer .

RangeError

ArrayBuffer newByteLength ArrayBuffer maxByteLength .

TypeError

ArrayBuffer .

transfer() . ArrayBuffer ArrayBuffer ArrayBuffer . .

transfer() ArrayBuffer . ArrayBuffer transferToFixedLength() . .

transfer() realloc .

ArrayBuffer

js
// ArrayBuffer    
const buffer = new ArrayBuffer(8);
const view = new Uint8Array(buffer);
view[1] = 2;
view[7] = 4;

//    
const buffer2 = buffer.transfer();
console.log(buffer.detached); // true
console.log(buffer2.byteLength); // 8
const view2 = new Uint8Array(buffer2);
console.log(view2[1]); // 2
console.log(view2[7]); // 4

//     
const buffer3 = buffer2.transfer(4);
console.log(buffer3.byteLength); // 4
const view3 = new Uint8Array(buffer3);
console.log(view3[1]); // 2
console.log(view3[7]); // undefined

//     
const buffer4 = buffer3.transfer(8);
console.log(buffer4.byteLength); // 8
const view4 = new Uint8Array(buffer4);
console.log(view4[1]); // 2
console.log(view4[7]); // 0

//  , TypeError 
buffer.transfer(); // TypeError: Cannot perform ArrayBuffer.prototype.transfer on a detached ArrayBuffer

ArrayBuffer

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const view = new Uint8Array(buffer);
view[1] = 2;
view[7] = 4;

//     
const buffer2 = buffer.transfer(4);
console.log(buffer2.byteLength); // 4
console.log(buffer2.maxByteLength); // 16
const view2 = new Uint8Array(buffer2);
console.log(view2[1]); // 2
console.log(view2[7]); // undefined
buffer2.resize(8);
console.log(view2[7]); // 0

// maxByteLength       
const buffer3 = buffer2.transfer(12);
console.log(buffer3.byteLength); // 12

// maxByteLength       
buffer3.transfer(20); // RangeError: Invalid array buffer length

Specification
ECMAScript 2027 LanguageSpecification
# sec-arraybuffer.prototype.transfer


Web Proxy Viewer  |  New URL  |  Original Page