MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

WebAssembly.Table.prototype.get()

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

WebAssembly.Table() オブジェクトの get() プロトタイプメソッドは指定したインデックスに格納された関数参照を取得します。

構文

var funcRef = table.get(index);

パラメータ

index
取得する関数参照のインデックス。

戻り値

関数参照を返します。これは エクスポートされた WebAssembly 関数 、wasm 関数を内在する JavaScript ラッパーです。

例外

もし index が Table.prototype.length 以上だった場合、RangeError をスローします。

次の例では (Github の table.html と 動作例 も確認してください)、fetchAndInstantiate() ユーティリティ関数を使用して table.wasm バイトコードをロード、コンパイルして、インスタンス化しています。その後、エクスポートされたテーブルに格納された参照を取得します。

fetchAndInstantiate('table.wasm').then(function(instance) {
  var tbl = instance.exports.tbl;
  console.log(tbl.get(0)());  // 13
  console.log(tbl.get(1)());  // 42
});

参照内に格納されている値を実際に取得するためには、アクセサの最後に2つ目の関数呼び出し演算子を含める必要があります(get(0) ではなく get(0)()) 。これは単純な値ではなく、関数です。

仕様

仕様 策定状況 コメント
Web Assembly JavaScript API
get() の定義
ドラフト 初回ドラフト定義。

ブラウザ実装状況

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 57 15[2] 52 (52)[1] 未サポート 44 11
Feature Chrome for Android Android Webview Edge Mobile Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 57 57 未サポート 52.0 (52)[1] 未サポート 未サポート 11

[1] WebAssemblyはFirefox 52+で有効です。Firefox 52 Extended Support Release (ESR.)では無効化されています。

[2] 現在、“Experimental JavaScript Features” フラグを付けることでサポートされます。詳細については このブログ記事 を参照してください。

関連情報

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

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