Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since октябрь 2017 г..
Объект WebAssembly.Table() - это JavaScript обёртка — структура похожая на массив, представляющая таблицу функций WebAssembly. Таблица, созданная через JavaScript или в коде WebAssembly, будет доступна и может быть изменена как из JavaScript, так и из WebAssembly.
Примечание: Таблицы сейчас хранят только ссылки на функции, но это может быть расширено в будущем.
Создаёт новый объект Table.
Все экземпляры Table наследуются от прототипа конструктора Table(), следовательно изменения прототипа затронут все экземпляры Table.
Возвращает функцию которая создала этот объект. По умолчанию это конструктор WebAssembly.Table().
Table.prototype.lengthВозвращает длину таблицы (количество элементов в таблице).
Возвращает указанное значение из таблицы.
Table.prototype.grow(count)Увеличивает размер таблицы на указанное количество элементов.
Table.prototype.set(index, value)Сохраняет указанное значение в таблицу под указанным индексом.
Следующий пример (смотри исходный код и живую версию table2.html) создаёт новый экземпляр WebAssembly Table с 2 элементами. После этого выводит длину таблицы и содержимое первых двух элементов (полученных через Table.prototype.get() чтобы показать что длина равняется 2 и элементы равны null.
После этого мы создаём объект импорта содержащий таблицу:
После этого, мы создаём экземпляр модуля wasm (table2.wasm) используя метод WebAssembly.instantiateStreaming(). Модуль table2.wasm содержит две функции, одна возвращает 42, а вторая - 83) и сохраняет эти функции под индексами 0 и 1 в импортированную таблицу (смотри текстовую версию). Таким образом, после создания wasm-модуля, таблица имеет туже длину, но элементы таблицы стали функциями экспортированными из WebAssembly которые можно вызывать из JS.
Заметьте что понадобилось добавить второй оператор вызова функции чтобы вызвать функцию возвращённую из талицы (т.е. get(0)() вместо get(0)) .
Этот пример показывает что мы создаём и работаем с таблицей из JavaScript, но экземпляр таблицы также виден и доступен внутри модуля wasm.
| WebAssembly JavaScript Interface # tables |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 мар. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.