aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2021-09-07 23:23:34 +0900
committerpotappo <potappo@gmail.com>2021-09-18 16:13:46 +0900
commitf984223597d974185ca4231b6c084fc8ab6272db (patch)
tree3b02fbc4fc772c1938a5323b184f508dc3553b6c /files/ja/web
parent5bf137db043919f317c74c3c65075a021156be62 (diff)
downloadtranslated-content-f984223597d974185ca4231b6c084fc8ab6272db.tar.gz
translated-content-f984223597d974185ca4231b6c084fc8ab6272db.tar.bz2
translated-content-f984223597d974185ca4231b6c084fc8ab6272db.zip
Global_Objects/WebAssembly/Instance を更新
- Markdown に変換 - 2021/09/06 時点の英語版に同期
Diffstat (limited to 'files/ja/web')
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/instance/index.md79
1 files changed, 79 insertions, 0 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/instance/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/instance/index.md
new file mode 100644
index 0000000000..a4254c0650
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/instance/index.md
@@ -0,0 +1,79 @@
+---
+title: WebAssembly.Instance
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance
+tags:
+ - クラス
+ - JavaScript
+ - リファレンス
+ - WebAssembly
+browser-compat: javascript.builtins.WebAssembly.Instance
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance
+---
+{{JSRef}}
+
+**`WebAssembly.Instance`** オブジェクトは、ステートフルで実行可能な {{jsxref("WebAssembly.Module")}} のインスタンスです。 `Instance` オブジェクトには JavaScript から WebAssembly コードを呼び出すことができるすべての[エクスポートされた WebAssembly 関数](/ja/docs/WebAssembly/Exported_functions)が含まれます。
+
+## コンストラクター
+
+- [`WebAssembly.Instance()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance/Instance)
+ - : 新しい `Instance` オブジェクトを生成します。
+
+## インスタンスプロパティ
+
+- {{jsxref("WebAssembly/Instance/exports", "Instance.prototype.exports")}}
+ - : メンバーとして WebAssembly モジュールのインスタンスからエクスポートされたすべての関数を含むオブジェクトを返します。 JavaScript からアクセスしたり使用したりすることができます。読み取り専用です。
+
+## 例
+
+### WebAssembly モジュールの同期的なインスタンス化
+
+`WebAssembly.Instance()` コンストラクター関数は、次のように呼び出して指定された {{jsxref("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` を取得するには非同期で行うことを推奨します。例えば、 {{jsxref("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());
+```
+
+また、これは `exports` プロパティを使ってエクスポートされた関数にアクセスする方法も紹介しています。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) 概要ページ
+- [WebAssembly の概念](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)