The transferToFixedLength()
method of ArrayBuffer
instances creates a new non-resizable ArrayBuffer
with the same byte content as this buffer, then detaches this buffer.
The transferToFixedLength()
method of ArrayBuffer
instances creates a new non-resizable ArrayBuffer
with the same byte content as this buffer, then detaches this buffer.
transferToFixedLength() transferToFixedLength(newByteLength)
newByteLength
The byteLength
of the new ArrayBuffer
. Defaults to the byteLength
of this ArrayBuffer
.
newByteLength
is smaller than the byteLength
of this ArrayBuffer
, the "overflowing" bytes are dropped.newByteLength
is larger than the byteLength
of this ArrayBuffer
, the extra bytes are filled with zeros.A new ArrayBuffer
object. Its contents are initialized to the contents of this ArrayBuffer
, and extra bytes, if any, are filled with zeros. The new ArrayBuffer
is always non-resizable. The original ArrayBuffer
is detached.
TypeError
Thrown if this ArrayBuffer
is already detached.
Unlike transfer()
, transferToFixedLength()
always creates a non-resizable ArrayBuffer
. This means newByteLength
can be larger than the maxByteLength
, even if this ArrayBuffer
is resizable. See transferring ArrayBuffers for more information.
const buffer = new ArrayBuffer(8, { maxByteLength: 16 }); const view = new Uint8Array(buffer); view[1] = 2; view[7] = 4; const buffer2 = buffer.transferToFixedLength(); console.log(buffer2.byteLength); // 8 console.log(buffer2.resizable); // false const view2 = new Uint8Array(buffer2); console.log(view2[1]); // 2 console.log(view2[7]); // 4
Using transferToFixedLength
, newByteLength
can be larger than the maxByteLength
of the original ArrayBuffer
.
const buffer = new ArrayBuffer(8, { maxByteLength: 16 }); const view = new Uint8Array(buffer); view[1] = 2; view[7] = 4; const buffer2 = buffer.transferToFixedLength(20); console.log(buffer2.byteLength); // 20 console.log(buffer2.resizable); // false const view2 = new Uint8Array(buffer2); console.log(view2[1]); // 2 console.log(view2[7]); // 4
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | ||
transferToFixedLength |
114 | 114 | 122 | 100 | preview | 114 | 122 | 76 | No | 23.0 | 114 | No | No |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transferToFixedLength