WebAssembly.Table.prototype.get()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

get()WebAssembly.Table オブジェクトのプロトタイプメソッドで、指定された位置に格納されている関数参照を取得します。

構文

js
get(index);

引数

index

取得する関数参照の位置です。

返値

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

例外

indexTable.prototype.length 以上であった場合、RangeError が発生します。

get の使用

次の例では (Github の table.html動作例も確認してください)、 table.wasm バイトコードを WebAssembly.instantiateStreaming() メソッドを使用して読み取り、コンパイルしてインスタンス化しています。その後、エクスポートされたテーブルに格納された参照を取得します。

js
WebAssembly.instantiateStreaming(fetch("table.wasm")).then(function (obj) {
  var tbl = obj.instance.exports.tbl;
  console.log(tbl.get(0)()); // 13
  console.log(tbl.get(1)()); // 42
});

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

仕様書

Specification
WebAssembly JavaScript Interface
# dom-table-get

ブラウザーの互換性

BCD tables only load in the browser

関連情報