--- title: WebAssembly slug: Web/JavaScript/Reference/Global_Objects/WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly ---
Объект JavaScript WebAssembly
действует как пространство имён для всего WebAssembly-связанной функциональности.
В отличие от большинства других глобальных объектов, WebAssembly
не является конструктором (это не объект функции). Можно сравнить его с {{jsxref("Math")}}, который так же является пространством имён констант и функций, или {{jsxref("Intl")}}, который является пространством имён для конструкторов интернационализации и других языково-чувствительных функций.
Основное использование WebAssembly
следующее:
Module
и его первый Instance
.true
) или (false
).Module
.Instance
.Memory
.Table
.CompileError
.LinkError
.RuntimeError
.После загрузки некоторого байт-кода WebAssembly с помощью fetch, мы компилируем и создаём экземпляр модуля с помощью функции {{jsxref("WebAssembly.instantiate()")}}, импортируя функции JavaScript в WebAssembly Module в процессе. Этот промис результирует в объект (result
), содержащий скомпилированные Module
и объекты Instance
. Мы можем вызвать Exported WebAssembly function, которая была экспортирована через Instance
.
var importObject = { imports: { imported_func: function(arg) { console.log(arg); } } }; fetch('simple.wasm').then(response => response.arrayBuffer() ).then(bytes => WebAssembly.instantiate(bytes, importObject) ).then(result => result.instance.exports.exported_func() );
Note: Смотрите пример index.html на GitHub (view it live also), который использует наши fetchAndInstantiate()
библиотечные функции.
Спецификация | Статус | Коммент |
---|---|---|
{{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}} | {{Spec2('WebAssembly JS')}} | Первоначальное определение проекта. |
{{Compat}}