WebAssembly.Memory.prototype.buffer
只读的 buffer
WebAssembly.Memory
对象的原型属性返回内存中包含的缓冲区。根据内存是否使用 shared: true
构造,缓冲区要么是 ArrayBuffer
,要么是 SharedArrayBuffer
。
示例
使用缓冲区
以下示例(参见 GitHub 上的 memory.html,以及 实时查看)使用 WebAssembly.instantiateStreaming()
函数获取并实例化加载的 memory.wasm 字节码,同时导入上面一行创建的内存。然后它在该内存中存储一些值,导出一个函数,并使用导出的函数对这些值求和。
js
const memory = new WebAssembly.Memory({
initial: 10,
maximum: 100,
});
WebAssembly.instantiateStreaming(fetch("memory.wasm"), {
js: { mem: memory },
}).then((obj) => {
const summands = new DataView(memory.buffer);
for (let i = 0; i < 10; i++) {
summands.setUint32(i * 4, i, true); // WebAssembly is little endian
}
const sum = obj.instance.exports.accumulate(0, 10);
console.log(sum);
});
规范
规范 |
---|
WebAssembly JavaScript 接口 # dom-memory-buffer |
浏览器兼容性
BCD 表仅在浏览器中加载