WebAssembly.Instance
WebAssembly.Instance 物件是 WebAssembly.Module 的一個有狀態的可執行例項。Instance 物件包含所有 匯出的 WebAssembly 函式,這些函式允許從 JavaScript 呼叫 WebAssembly 程式碼。
建構函式
WebAssembly.Instance()-
建立一個新的
Instance物件。
例項屬性
exports-
返回一個物件,該物件包含 WebAssembly 模組例項匯出的所有函式作為其成員,以便 JavaScript 可以訪問和使用它們。只讀。
示例
同步例項化 WebAssembly 模組
可以呼叫 WebAssembly.Instance() 建構函式來同步例項化給定的 WebAssembly.Module 物件,例如:
js
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => {
const mod = new WebAssembly.Module(bytes);
const instance = new WebAssembly.Instance(mod, importObject);
instance.exports.exported_func();
});
獲取 Instance 的首選方法是非同步的,例如使用 WebAssembly.instantiateStreaming() 函式,如下所示:
js
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
這還演示瞭如何使用 exports 屬性來訪問匯出的函式。
規範
| 規範 |
|---|
| WebAssembly JavaScript 介面 # instances |
瀏覽器相容性
載入中…