WebAssembly.Instance
WebAssembly.Instance
オブジェクトは、ステートフルで実行可能な WebAssembly.Module
のインスタンスです。 Instance
オブジェクトには JavaScript から WebAssembly コードを呼び出すことができるすべてのエクスポートされた WebAssembly 関数が含まれます。
コンストラクター
WebAssembly.Instance()
-
新しい
Instance
オブジェクトを生成します。
インスタンスプロパティ
Instance.prototype.exports
-
メンバーとして WebAssembly モジュールのインスタンスからエクスポートされたすべての関数を含むオブジェクトを返します。 JavaScript からアクセスしたり使用したりすることができます。読み取り専用です。
例
WebAssembly モジュールの同期的なインスタンス化
WebAssembly.Instance()
コンストラクター関数は、次のように呼び出して指定された WebAssembly.Module
オブジェクトを同期的にインスタンス化することができます。
js
const importObject = {
imports: {
imported_func: function (arg) {
console.log(arg);
},
},
};
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => {
let mod = new WebAssembly.Module(bytes);
let instance = new WebAssembly.Instance(mod, importObject);
instance.exports.exported_func();
});
Instance
を取得するには非同期で行うことを推奨します。例えば、 WebAssembly.instantiateStreaming()
関数を使って次のようにします。
js
const importObject = {
imports: {
imported_func: function (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