Movatterモバイル変換


[0]ホーム

URL:


  1. WebAssembly
  2. Reference
  3. WebAssembly
  4. WebAssembly.Global

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

View in EnglishAlways switch to English

WebAssembly.Global

Baseline Widely available

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

WebAssembly.Global はグローバル変数のインスタンスを表します。JavaScript からアクセスでき、1 つ以上のWebAssembly.Module インスタンス間でインポート/エクスポートすることができます。これにより複数のモジュールを動的にリンクすることができます。

コンストラクター

WebAssembly.Global()

新しいGlobal オブジェクトを生成します。

Global のインスタンス

すべてのGlobal のインスタンスはGlobal() コンストラクターのプロパティオブジェクトを継承します。これによりすべてのGlobal インスタンスを変更することができます。

インスタンスプロパティ

Global.prototype.constructor

このオブジェクトのインスタンスを生成した関数を返します。既定では、これはWebAssembly.Global() コンストラクターです。

Global.prototype[Symbol.toStringTag]

Symbol.toStringTag プロパティの初期値で、文字列値 "WebAssembly.Global" です。

Global.prototype.value

グローバル変数の中に含まれている値です。これにより、グローバル値を直接設定および取得することができます。

インスタンスメソッド

Global.prototype.valueOf()

グローバル変数の中に含まれている値を返す古い形のメソッドです。

新しい Global インスタンスの生成

以下の例では新しいグローバルインスタンスはWebAssembly.Global() コンストラクターを用いて初期化され、初期値 0 の変更可能なi32 型として定義されます。

その後この値は、Global.value プロパティを使うことによって42 に、global.wasm モジュールから公開された(どんな値が与えられても 1 を加算して、新しい値を返す)incGlobal() 関数を使うことによって43 になります。

js
const output = document.getElementById("output");function assertEq(msg, got, expected) {  const result =    got === expected      ? `SUCCESS! Got: ${got}<br>`      : `FAIL!<br>Got: ${got}<br>Expected: ${expected}<br>`;  output.innerHTML += `Testing ${msg}: ${result}`;}assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function");const global = new WebAssembly.Global({ value: "i32", mutable: true }, 0);WebAssembly.instantiateStreaming(fetch("global.wasm"), { js: { global } }).then(  ({ instance }) => {    assertEq(      "getting initial value from wasm",      instance.exports.getGlobal(),      0,    );    global.value = 42;    assertEq(      "getting JS-updated value from wasm",      instance.exports.getGlobal(),      42,    );    instance.exports.incGlobal();    assertEq("getting wasm-updated value from JS", global.value, 43);  },);

メモ:この例はGitHub 上の実行例で確認できます。また、ソースコードも参照してください。

仕様書

Specification
WebAssembly JavaScript Interface
# globals

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp