WebAssembly.Instance
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.
Ein WebAssembly.Instance Objekt ist eine zustandsbehaftete, ausführbare Instanz eines WebAssembly.Module. Instance-Objekte enthalten alle exportierten WebAssembly-Funktionen, die es ermöglichen, aus JavaScript auf WebAssembly-Code zuzugreifen.
Konstruktor
WebAssembly.Instance()-
Erstellt ein neues
Instance-Objekt.
Instanzeigenschaften
exports-
Gibt ein Objekt zurück, das alle aus der WebAssembly-Modulinstanz exportierten Funktionen als seine Mitglieder enthält, sodass sie von JavaScript aus zugänglich und nutzbar sind. Nur lesbar.
Beispiele
>Synchrones Instanziieren eines WebAssembly-Moduls
Die WebAssembly.Instance() Konstruktorfunktion kann aufgerufen werden, um synchron ein gegebenes WebAssembly.Module Objekt zu instanziieren, zum Beispiel:
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
fetch("simple.wasm")
.then((response) => response.arrayBuffer())
.then((bytes) => {
const mod = new WebAssembly.Module(bytes);
const instance = new WebAssembly.Instance(mod, importObject);
instance.exports.exported_func();
});
Der bevorzugte Weg, um eine Instance zu erhalten, ist asynchron, zum Beispiel durch die Verwendung der WebAssembly.instantiateStreaming() Funktion wie folgt:
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
Dies zeigt auch, wie die exports-Eigenschaft verwendet wird, um auf exportierte Funktionen zuzugreifen.
Spezifikationen
| Spezifikation |
|---|
| WebAssembly JavaScript Interface> # instances> |