| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/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.
L'objet WebAssembly.Table est un objet JavaScript qui agit comme une structure de type tableau reprsentant un tableau WebAssembly, lequel stocke des rfrences homognes. Un tableau cr en JavaScript ou dans du code WebAssembly sera accessible et modifiable depuis du code JavaScript et depuis du code WebAssembly.
Note : Actuellement, les tableaux WebAssembly peuvent uniquement stocker des rfrences des fonctions ou des rfrences htes, mais cette fonctionnalit sera vraisemblablement tendue par la suite.
WebAssembly.Table()Cre un nouvel objet Table.
Table.prototype.length Lecture seuleRetourne la longueur du tableau, c'est--dire le nombre d'lments dans le tableau.
Table.prototype.get()Fonction accesseur obtient l'lment stock un index donn.
Table.prototype.grow()Augmente la taille de l'instance Table d'un nombre dfini d'lments.
Table.prototype.set()Dfinit un lment stock un index donn avec une valeur donne.
Table WebAssemblyL'exemple suivant (voir table2.html code source (angl.) et version en ligne (angl.)) cre une nouvelle instance de Table WebAssembly avec une taille initiale de 2 lments. Nous affichons ensuite la longueur du tableau et le contenu des deux indices (obtenus avec Table.prototype.get()) pour montrer que la longueur est de deux et que les deux lments sont null.
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"
Nous crons ensuite un objet d'importation qui contient le tableau :
const importObj = {
js: { tbl },
};
Enfin, nous chargeons et instancions un module Wasm (table2.wasm) en utilisant la mthode WebAssembly.instantiateStreaming(). Le module table2.wasm contient deux fonctions (une qui retourne 42 et une autre qui retourne 83) et les stocke dans les lments 0 et 1 du tableau import (voir reprsentation textuelle (angl.)). Ainsi, aprs l'instanciation, le tableau a toujours une longueur de 2, mais les lments contiennent maintenant des fonctions WebAssembly exportes appelables depuis JS.
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
(obj) => {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
},
);
Notez qu'il faut inclure un second oprateur d'invocation de fonction la fin de l'accesseur pour rellement invoquer la fonction rfrence et enregistrer la valeur qu'elle contient (par exemple, get(0)() plutt que get(0)).
Cet exemple montre que nous crons et accdons au tableau depuis JavaScript, mais le mme tableau est galement visible et appelable l'intrieur de l'instance Wasm.
| Spcification |
|---|
| WebAssembly JavaScript Interface # tables |
Cette page a t modifie le 17 avr. 2026 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 |