--- title: WebAssembly slug: Web/JavaScript/Reference/Global_Objects/WebAssembly tags: - API - Experimental - JavaScript - Objeto - Referencia - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly original_slug: Web/JavaScript/Referencia/Objetos_globales/WebAssembly ---
El objeto WebAssembly
de JavaScript actua como un namespace para todas las funcionalidades realcionados con WebAssembly.
A diferencia de otros objetos globales, WebAssembly
no tiene un constructor (no tiene una función para crear el objeto). Puedes ser comparado con el objeto {{jsxref("Math")}}, que también es un namespace, para funciones y constantes matemáticas, o también con {{jsxref("Intl")}} que es un namespace para internacionalización y otras funciones de idioma.
Los usos primarios para el objeto WebAssembly
son:
Module
y el primero Instance
.Module
y el primero Instance
.true
) o de lo contrario (false
).Module
.Instance
.Memory
.Table
.CompileError
.LinkError
.RuntimeError
.Después de obtener algún bytecode de WebAssembly usando la sentencia fetch, nosotros compilamos e instanciamos el módulo usando la función {{jsxref("WebAssembly.instantiate()")}} , importando una función de JavaScript en el WebAssembly Module en el proceso. Esta premisa resuelve a un objeto (result
) que contenga un objeto Module
compilado y un objeto Instance
. Entonces tenemos una llamada a Exported WebAssembly function que es exportada por 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() );
Nota: Ver index.html en GitHub (view it live also) para un ejemplo que hace uso de la función fetchAndInstantiate()
.
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}} | {{Spec2('WebAssembly JS')}} | Definición inicial del borrador. |
{{Compat("javascript.builtins.WebAssembly")}}