ArrayBuffer.prototype.transferToFixedLength()
Baseline
2024
Newly available
Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
transferToFixedLength() 㯠ArrayBuffer ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ããã®ãããã¡ã¨åããã¤ãå
容ãæã¤ãµã¤ãºå¤æ´ä¸å¯è½ãªæ°ãã ArrayBuffer ã使ãããã®å¾ã§ãã®ãããã¡ãåé¢ãã¾ãã
æ§æ
transferToFixedLength()
transferToFixedLength(newByteLength)
弿°
newByteLength-
æ°ãã
ArrayBufferã®byteLengthã§ããããã©ã«ãå¤ã¯ãã®ArrayBufferã®byteLengthã§ããnewByteLengthããã®ArrayBufferã®byteLengthããå°ããå ´åãããªã¼ãã¼ããã¼ããããã¤ãã¯ç ´æ£ããã¾ããnewByteLengthããã®ArrayBufferã®byteLengthãã大ããå ´åãä½åãªãã¤ãã¯ã¼ãã§åãããã¾ãã
è¿å¤
æ°ãã ArrayBuffer ãªãã¸ã§ã¯ãã§ãããã®å
容ã¯ããã® ArrayBuffer ã®å
容ã§åæåãããä½åãªãã¤ããããå ´åã¯ã¼ãã§åãããã¾ããæ°ãã ArrayBuffer ã¯ã常ã«ãµã¤ãºå¤æ´ä¸å¯è½ã§ããå
ã® ArrayBuffer ã¯åãé¢ããã¾ãã
ä¾å¤
TypeError-
ãã®
ArrayBufferãæ¢ã«åé¢ããã¦ããå ´åãã¾ãã¯æå®ãããæä½ã«ãã£ã¦ã®ã¿åé¢å¯è½ãªå ´åã«çºçãã¾ããç¾å¨ãGPUBuffer.getMappedRange()ãWebAssembly.Memory.bufferãªã©ã®ç¹å®ã® Web API ã®ã¿ããæå®ãããåé¢ã¡ã½ãããæã¤ArrayBufferãªãã¸ã§ã¯ãã使ã§ãã¾ãã
解説
transfer() ã¨ã¯ç°ãªããtransferToFixedLength() ã¯å¸¸ã«ãµã¤ãºå¤æ´ä¸å¯ã® ArrayBuffer ã使ãã¾ããããã¯ããã® ArrayBuffer ããµã¤ãºå¤æ´å¯è½ã§ãã£ã¦ããnewByteLength ã maxByteLength ãã大ããã§ããã¨ãããã¨ã§ãã詳細ã«ã¤ãã¦ã¯ã詳細ã«ã¤ãã¦ã¯ãArrayBuffer ã®ç§»è²ãåç
§ãã¦ãã ããã
ä¾
>ãªãµã¤ãºå¯è½ãª ArrayBuffer ãåºå®é·ã®ãã®ã«ç§»è²
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
transferToFixedLength ã使ç¨ããå ´åãnewByteLength ã¯å
ã® ArrayBuffer ã® maxByteLength ããã大ãããããã¨ãã§ãã¾ãã
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
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-arraybuffer.prototype.transfertofixedlength> |