WebAssembly.Instance
WebAssembly.Instance
对象本身是有状态的,是 WebAssembly.Module
的一个可执行实例。Instance
对象包含所有的 WebAssembly 导出函数,允许从 JavaScript 调用 WebAssembly 代码。
构造函数
WebAssembly.Instance()
-
创建一个新的
Instance
对象。
实例属性
exports
-
返回一个包含此 WebAssembly 模块实例所导出的全部成员对象,以便 JavaScript 访问和使用这些成员,这个对象是只读的。
示例
同步实例化 WebAssembly 模块
WebAssembly.Instance()
构造函数以同步方式实例化一个 WebAssembly.Module
对象,例如:
js
const importObject = {
imports: {
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 = {
imports: {
imported_func(arg) {
console.log(arg);
},
},
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
示例也说明如何使用 exports
属性来访问导出的函数。
规范
Specification |
---|
WebAssembly JavaScript Interface # instances |
浏览器兼容性
BCD tables only load in the browser