| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/WebAssembly/Reference/JavaScript_interface/Global/Global | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Mrz 2020 browserbergreifend verfgbar.
Ein WebAssembly.Global() Konstruktor erstellt ein neues Global Objekt, das eine globale Variableninstanz darstellt, die sowohl aus JavaScript zugnglich als auch ber eine oder mehrere WebAssembly.Module Instanzen importierbar/exportierbar ist. Dies ermglicht die dynamische Verknpfung mehrerer Module.
new WebAssembly.Global(descriptor, value)
descriptorEin Objekt, das zwei Eigenschaften enthlt:
valueDer Wert, den die Variable enthlt. Dies kann jeder Wert sein, solange sein Typ mit dem Datentyp der Variablen bereinstimmt. Wenn kein Wert angegeben ist:
0 verwendet, wenn descriptor.value i32, i64, f32 oder f64 istundefined verwendet, wenn descriptor.value externref istnull verwendet, wenn descriptor.value funcref istTypeErrorWird ausgelst, wenn eine der folgenden Bedingungen erfllt ist:
descriptor ist kein Objekt.descriptor.value fehlt oder ist kein gltiger Werttyp (wie zum Beispiel "v128").value ist angegeben, kann aber nicht in den von descriptor.value benannten WebAssembly-Typ konvertiert werden.Das folgende Beispiel zeigt eine neue globale Instanz, die mit dem WebAssembly.Global()-Konstruktor erstellt wird.
Es wird als vernderbarer i32 Typ mit einem Wert von 0 definiert.
Der Wert der globalen Variable wird dann gendert, zuerst auf 42 mit der Global.value-Eigenschaft und dann auf 43 mit der incGlobal()-Funktion, die aus dem global.wasm-Modul exportiert wird (dies addiert 1 zu dem gegebenen Wert und gibt dann den neuen Wert zurck).
const output = document.getElementById("output");
function assertEq(msg, got, expected) {
const result =
got === expected
? `SUCCESS! Got: ${got}\n`
: `FAIL!\nGot: ${got}\nExpected: ${expected}\n`;
output.innerText += `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);
},
);
Hinweis: Sie knnen das Beispiel live auf GitHub ausfhren; siehe auch den Quellcode.
| Spezifikation |
|---|
| WebAssembly JavaScript Interface # dom-global-global |
global DefinitionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |