| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/Table/Table | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis octobre 2017.
Le constructeur WebAssembly.Table() cre un nouvel objet Table de la taille et du type d'lment donn.
new WebAssembly.Table(descripteurTable);
Un objet qui peut contenir les proprits suivantes :
elementUne chane de caractres reprsentant le type de valeur stocker dans la table. Pour le moment, sa valeur ne peut tre que "anyfunc" (indiquant les fonctions).
initialLe nombre initial d'lments dans la table WebAssembly.
Le nombre maximal d'lments jusqu'auquel la table WebAssembly peut grandir.
descripteurTable n'est pas un objet, une exception TypeError sera leve.maximum est fourni et est infrieur initial, une exception RangeError sera leve.Dans l'exemple suivant (voir le code source et la dmo live correspondants), on cre une nouvelle instance d'une table WebAssembly avec une taille initiale de 2 lments. On affiche alors la longueur de la table et son contenu (grce Table.prototype.get() pour montrer que la longueur vaut 2 et que les deux lments sont null.
var 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"
On peut ensuite crer un objet d'import qui contient la table :
var importObj = {
js: {
tbl: tbl,
},
};
Enfin, on charge et on instancie un module WASM (table2.wasm) en utilisant la mthode WebAssembly.instantiateStreaming(). Le module table2.wasm contient deux fonctions (une qui renvoie 42 et l'autre qui renvoie 83) et on stocke ces deux fonctions dans les lments 0 et 1 de la table importe (voir la reprsentation textuelle). Ainsi, aprs l'instanciation, la table a toujours une longueur qui vaut 2 et les lments contiennent dsormais des fonctions WebAssembly exportes qu'on peut appeler depuis le code JavaScript.
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
function (obj) {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
},
);
On notera qu'il faut inclure une deuxime paire de parenthses afin d'invoquer la fonction rfrence et d'afficher la valeur qui y est stocke (on crit donc get(0)() plutt que get(0)) .
Dans cet exemple, on illustre la cration et l'accs la table depuis du code JavaScript, mais cette mme table est visible depuis l'instance WASM galement.
| Spcification |
|---|
| WebAssembly JavaScript Interface # dom-table-table |
Cette page a t modifie le 7 sept. 2025 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |