Movatterモバイル変換


[0]ホーム

URL:


  1. WebAssembly
  2. Reference
  3. WebAssembly
  4. WebAssembly.Instance
  5. WebAssembly.Instance() コンストラクター

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

WebAssembly.Instance() コンストラクター

Baseline Widely available

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

WebAssembly.Instance() コンストラクターは、新しいInstance オブジェクトを生成します。これはステートフルで実行可能なWebAssembly.Module のインスタンスです。

構文

警告:巨大なモジュールのインスタンス化は高コストになる可能性があるので、開発者が同期的なInstance() コンストラクターを使用するのは、絶対に必要な場合のみにするべきです。それ以外の場合はすべて、WebAssembly.instantiateStreaming() メソッドを使用してください。

js
new WebAssembly.Instance(module, importObject);

引数

module

インスタンス化するWebAssembly.Module オブジェクト。

importObject省略可

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

WebAssembly モジュールの同期的なインスタンス化

次のようにWebAssembly.Instance() コンストラクター関数を呼び出して、渡したWebAssembly.Module オブジェクトを同期的にインスタンス化することができます。

js
const importObject = {  imports: {    imported_func: function (arg) {      console.log(arg);    },  },};fetch("simple.wasm")  .then((response) => response.arrayBuffer())  .then((bytes) => {    let mod = new WebAssembly.Module(bytes);    let instance = new WebAssembly.Instance(mod, importObject);    instance.exports.exported_func();  });

ただし、Instance を取得する方法としては、次のように、非同期のWebAssembly.instantiateStreaming() 関数を使用することをお勧めします。

js
const importObject = {  imports: {    imported_func: function (arg) {      console.log(arg);    },  },};WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(  (obj) => obj.instance.exports.exported_func(),);

仕様書

Specification
WebAssembly JavaScript Interface
# dom-instance-instance

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp