这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
一个 WebAssembly.Instance 对象是有状态的, 是WebAssembly.Module 的一个可执行实例. 实例包含所有的 WebAssembly 导出函数 ,允许从JavaScript 调用 WebAssembly 代码.
WebAssembly.Instance() 构造函数以同步方式实例化一个WebAssembly.instantiate() .
构造函数语法
重要: 因为大型模块的实例化比较昂贵, 开发人员应该只在同步实例化是必须时,才使用Instance(); 绝大多数情况应该使用异步方法WebAssembly.instantiate() .
var myInstance = new WebAssembly.Instance(module, importObject);
参数
- module
-
要被实例化的
WebAssembly.Module对象. - importObject 可选
-
一个包含值的对象,导入到新创建的
实例, 比如函数或WebAssembly.Memory对象. There must be one matching property for each declared import ofmodule否则抛出 WebAssembly.LinkError 异常.
Instance 实例化
所有的 Instance 实例继承自Instance() 属性对象— 修改它会影响所有的Instance 实例.
Instance 属性
-
Instance.prototype.constructor -
Returns the function that created this object's instance. By default this is the
WebAssembly.Instance()constructor. -
Instance.prototype.exportsRead only - Returns an object containing as its members all the functions exported from the WebAssembly module instance, to allow them to be accessed and used by JavaScript.
Instance 方法
None.
规格
| 规格 | 状态 | 描述 |
|---|---|---|
| WebAssembly JavaScript Interface Instance |
Working Draft | Initial draft definition. |
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains.
Find out how you can help!
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Basic support | 57 | 15[2] | 52 (52)[1] | 未实现 | 44 | 11 |
| Feature | Chrome for Android | Android Webview | Edge Mobile | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | 57 | 57 | 未实现 | 52.0 (52)[1] | 未实现 | 未实现 | 11 |
[1] WebAssembly is enabled in Firefox 52+, although disabled in the Firefox 52 Extended Support Release (ESR.)
[2] Currently supported behind the “Experimental JavaScript Features” flag. See this blog post for more details.