| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/WebAssembly/Reference/JavaScript_interface/Table | [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 Oktober 2017 browserbergreifend verfgbar.
Das WebAssembly.Table Objekt ist ein JavaScript-Wrapper-Objekt eine array-hnliche Struktur, die eine WebAssembly-Tabelle darstellt, welche homogene Referenzen speichert. Eine von JavaScript oder in WebAssembly-Code erstellte Tabelle ist sowohl von JavaScript als auch von WebAssembly zugnglich und vernderbar.
Hinweis: Tabellen knnen derzeit nur Funktionsreferenzen oder Host-Referenzen speichern, aber dies wird wahrscheinlich in Zukunft erweitert.
WebAssembly.Table()Erstellt ein neues Table Objekt.
Table.prototype.length SchreibgeschtztGibt die Lnge der Tabelle zurck, das heit die Anzahl der Elemente in der Tabelle.
Table.prototype.get()Zugriffsfunktion holt das Element, das an einem bestimmten Index gespeichert ist.
Table.prototype.grow()Erhht die Gre der Table Instanz um eine angegebene Anzahl von Elementen.
Table.prototype.set()Setzt ein Element, das an einem bestimmten Index gespeichert ist, auf einen angegebenen Wert.
Das folgende Beispiel (siehe table2.html Quellcode und Live-Version) erstellt eine neue WebAssembly Table Instanz mit einer Anfangsgre von 2 Elementen. Wir drucken dann die Tabellenlnge und den Inhalt der beiden Indizes aus (abgerufen ber Table.prototype.get()), um zu zeigen, dass die Lnge zwei ist und beide Elemente null sind.
const tbl = new WebAssembly.Table({ initial: 2, element: "anyfunc" });
console.log(tbl.length); // "2"
console.log(tbl.get(0)); // "null"
console.log(tbl.get(1)); // "null"
Dann erstellen wir ein Import-Objekt, das die Tabelle enthlt:
const importObj = {
js: { tbl },
};
Abschlieend laden und instanziieren wir ein Wasm-Modul (table2.wasm) mit der Methode WebAssembly.instantiateStreaming(). Das table2.wasm-Modul enthlt zwei Funktionen (eine, die 42 zurckgibt, und eine andere, die 83 zurckgibt) und speichert beide in den Elementen 0 und 1 der importierten Tabelle (siehe Textdarstellung). Nach der Instanziierung hat die Tabelle immer noch die Lnge 2, aber die Elemente enthalten nun aufrufbare Exportierte WebAssembly-Funktionen, die wir aus JS aufrufen knnen.
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
(obj) => {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
},
);
Beachten Sie, dass Sie einen zweiten Funktionsaufrufsoperator am Ende des Zugriffs verwenden mssen, um die referenzierte Funktion tatschlich aufzurufen und den darin gespeicherten Wert zu protokollieren (z. B. get(0)() anstelle von get(0)).
Dieses Beispiel zeigt, dass wir die Tabelle von JavaScript aus erstellen und darauf zugreifen, aber dieselbe Tabelle auch innerhalb der Wasm-Instanz sichtbar und aufrufbar ist.
| Spezifikation |
|---|
| WebAssembly JavaScript Interface # tables |
Der 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 |