SharedArrayBuffer() 构造函数
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2021年12月.
* Some parts of this feature may have varying levels of support.
备注:SharedArrayBuffer 构造函数可能并不总是全局可用的,除非满足某些安全要求。
SharedArrayBuffer() 构造函数创建 SharedArrayBuffer 对象。
尝试一下
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(8);
console.log(buffer.byteLength);
// Expected output: 8
语法
js
new SharedArrayBuffer(length)
new SharedArrayBuffer(length, options)
参数
length-
要创建的数组缓冲区大小,以字节为单位。
options可选-
一个对象,包含以下属性:
maxByteLength可选-
该共享数组缓冲区可以调整到的最大大小,以字节为单位。
返回值
一个指定大小的新 SharedArrayBuffer 对象,如果指定了 maxByteLength,则其 maxByteLength 属性被设置为指定的值。其内容被初始化为 0。
示例
>总是使用 new 运算符来创建 SharedArrayBuffer
SharedArrayBuffer 构造函数必须使用 new 运算符来构造。将 SharedArrayBuffer 构造函数作为函数,不通过 new 调用会抛出 TypeError。
js
const sab = SharedArrayBuffer(1024);
// TypeError: calling a builtin SharedArrayBuffer constructor
// 不带 new 调用是不行的
js
const sab = new SharedArrayBuffer(1024);
增大可增大的 SharedArrayBuffer
在这个示例中,我们创建了一个 8 字节的缓冲区,其可增大到的最大长度为 16 字节,然后 grow() 它到 12 字节:
js
const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 });
buffer.grow(12);
备注:推荐设置 maxByteLength 为使用场景下最低的大小,不要超过 1073741824(1GB)以减小内存溢出风险。
规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-sharedarraybuffer-constructor> |
浏览器兼容性
Loading…