WebAssembly.Instance
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨Oktober 2017â©.
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
| Specification |
|---|
| WebAssembly JavaScript Interface > # instances > |