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 の定義 |
草案 | 初回ドラフト定義。 |
ブラウザ実装状況
Update compatibility data on GitHub
デスクトップ | モバイル | サーバー | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Instance | Chrome 完全対応 57 | Edge 完全対応 16 | Firefox
完全対応
52
| IE 未対応 なし | Opera 完全対応 44 | Safari 完全対応 11 | WebView Android 完全対応 57 | Chrome Android 完全対応 57 | Firefox Android
完全対応
52
| Opera Android ? | Safari iOS 完全対応 11 | Samsung Internet Android 完全対応 7.0 | nodejs 完全対応 8.0.0 |
exports | Chrome 完全対応 57 | Edge 完全対応 16 | Firefox
完全対応
52
| IE 未対応 なし | Opera 完全対応 44 | Safari 完全対応 11 | WebView Android 完全対応 57 | Chrome Android 完全対応 57 | Firefox Android
完全対応
52
| Opera Android ? | Safari iOS 完全対応 11 | Samsung Internet Android 完全対応 7.0 | nodejs 完全対応 8.0.0 |
prototype | Chrome 完全対応 57 | Edge 完全対応 16 | Firefox
完全対応
52
| IE 未対応 なし | Opera 完全対応 44 | Safari 完全対応 11 | WebView Android 完全対応 57 | Chrome Android 完全対応 57 | Firefox Android
完全対応
52
| Opera Android ? | Safari iOS 完全対応 11 | Samsung Internet Android 完全対応 7.0 | nodejs 完全対応 8.0.0 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 実装状況不明
- 実装状況不明
- 実装ノートを参照してください。
- 実装ノートを参照してください。
関連情報
- WebAssembly overview page
- WebAssembly のコンセプト
- WebAssembly JavaScript API を使用する