HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
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 のインスタンスです。
WebAssembly.Instance()
Instance
WebAssembly.Module
警告: 巨大なモジュールのインスタンス化は高コストになる可能性があるので、開発者が同期的な Instance() コンストラクターを使用するのは、絶対に必要な場合のみにするべきです。それ以外の場合はすべて、WebAssembly.instantiateStreaming() メソッドを使用してください。
Instance()
WebAssembly.instantiateStreaming()
new WebAssembly.Instance(module, importObject);
インスタンス化する WebAssembly.Module オブジェクト。
新しく生成される Instance にインポートされる値を持つオブジェクトで、例えば関数や WebAssembly.Memory オブジェクトなどです。モジュール内で宣言されたインポートそれぞれに対応するプロパティが存在する必要があります。そうでない場合、 WebAssembly.LinkError が発生します。
WebAssembly.Memory
WebAssembly.LinkError
次のように WebAssembly.Instance() コンストラクター関数を呼び出して、渡した WebAssembly.Module オブジェクトを同期的にインスタンス化することができます。
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() 関数を使用することをお勧めします。
const importObject = { imports: { imported_func: function (arg) { console.log(arg); }, }, }; WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then( (obj) => obj.instance.exports.exported_func(), );
Enable JavaScript to view this browser compatibility table.