WebAssembly.Memory.prototype.buffer

Baseline 已廣泛支援

此功能已非常成熟,可在多種裝置和瀏覽器版本上使用。自 2017 年 10 月以來,它已在各大瀏覽器中可用。

WebAssembly.Memory 物件的只讀 buffer 原型屬性返回記憶體中包含的緩衝區。根據記憶體是使用 shared: true 構建的還是未使用的,該緩衝區要麼是 ArrayBuffer,要麼是 SharedArrayBuffer

示例

使用 buffer

以下示例(請參閱 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

瀏覽器相容性

另見