We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

WebAssembly.Instance オブジェクトはステートフルで、実行可能な Module のインスタンスです。Instance オブジェクトには JavaScript から WebAssembly コードを呼び出すことを許可された エクスポートされたWebAssembly関数 が含まれます。

WebAssembly.Instance() コンストラクタ関数は同期的に WebAssembly.Module オブジェクトをインスタンス化することができます。しかし、主な Instance の取得方法は非同期の WebAssembly.instantiate() 関数を使用する方法です。

コンストラクタ構文

重要: 巨大なモジュールのインスタンス化は高コストになる可能性があります。開発者は絶対に必要な場合にのみ同期的な Instance() コンストラクタを使用すべきです。他のすべての場合で非同期の WebAssembly.instantiate() メソッドの仕様が推奨されます。

var myInstance = new WebAssembly.Instance(module, importObject);

パラメータ

module
インスタンス化する WebAssembly.Module オブジェクト。
importObject Optional
関数や WebAssembly.Memory オブジェクトなどの新しく生成される Instance にインポートされる値を持つオブジェクト。モジュール内で宣言されたインポートそれぞれに対応するプロパティが存在する必要があります。そうでない場合、WebAssembly.LinkError がスローされます。

Instance インスタンス

全ての Instance インスタンスは Instance() コンストラクタの プロトタイプオブジェクト を継承します。これは全ての Instance インスタンスに影響するように変更可能です。

インスタンスプロパティ

Instance.prototype.constructor
このオブジェクトのインスタンスを生成した関数を返します。デフォルトでは  WebAssembly.Instance() コンストラクタです。
Instance.prototype.exports 読取専用
WebAssembly モジュールインスタンスからエクスポートされた全ての関数をメンバとして持つオブジェクトを返します。これらは、JavaScriptからアクセスして使用することができます。

インスタンスメソッド

なし。

仕様

仕様 策定状況 コメント
WebAssembly JavaScript Interface
Instance の定義
草案 初回ドラフト定義。

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応5716522 なし4411
exports5716522 なし4411
prototype5716522 なし4411
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応5757 あり1522 ?117.0
exports5757 あり1522 ?117.0
prototype5757 あり1522 ?117.0

1. This feature is behind the Experimental JavaScript Features preference.

2. Disabled in the Firefox 52 Extended Support Release (ESR).

関連情報

ドキュメントのタグと貢献者

このページの貢献者: ukyo
最終更新者: ukyo,