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)()) 。これは単純な値ではなく、関数です。

仕様

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

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!
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” フラグを付けることでサポートされます。詳細については このブログ記事 を参照してください。

関連情報