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 Funktionen enthält, die aus der WebAssembly-Modulinstanz exportiert werden, damit diese von JavaScript aus zugegriffen und verwendet werden können. Nur-Lesezugriff.
Beispiele
Synchrones Instanziieren eines WebAssembly-Moduls
Die WebAssembly.Instance()
Konstruktor-Funktion kann aufgerufen werden, um ein bestimmtes WebAssembly.Module
-Objekt synchron 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, eine Instance
zu erhalten, ist asynchron, zum Beispiel unter Verwendung der WebAssembly.instantiateStreaming()
-Funktion, wie hier:
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 |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- WebAssembly Übersichtsseite
- WebAssembly-Konzepte
- Verwendung der WebAssembly JavaScript API