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 October 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 |