WebAssembly.table.set
这是一项 实验技术
在使用此产品之前,请仔细检查浏览器兼容性表。
WebAssembly.Table
对象的set()
原型方法将存储在给定索引处的引用变为不同的值。
语法
table.set(index, value);
参数
_index_您想要mutate._value_的函数引用的索引要变更引用的值。这是一个导出的WebAssembly函数,一个底层的wasm函数的JavaScript包装器。
返回值
Void.
异常
- 如果index大于或等于
Table.prototype.length
a,则抛出RangeError
。
- 如果值不是出口WebAssembly功能或者
null
,则抛出一个TypeError
。
示例
var tbl = new WebAssembly.Table({initial:2, element:"anyfunc"});
console.log(tbl.length);
console.log(tbl.get(0));
console.log(tbl.get(1));
然后我们创建一个包含对表的引用的导入对象:
var importObj = {
js: {
tbl:tbl
}
};
最后,我们使用我们的fetchAndInstantiate()
效用函数加载并实例化一个wasm模块(table2.wasm),记录表长度,并调用现在存储在表中的两个引用函数(table2.wasm模块(见文本表示)添加两个函数引用表,这两个都打印出一个简单的值):
fetchAndInstantiate('table2.wasm', importObject).then(function(instance) {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
});
注意如何在访问器的末尾包含第二个函数调用操作符,以实际调用引用的函数并记录其中存储的值(例如,get(0)()
而不是get(0)
)。
这个例子显示了我们正在使用JavaScript创建和访问表,但同样的表在wasm实例中也是可见的和可调用的。
规范
Specification | Status | Comment |
---|---|---|
Web Assembly JavaScript APIThe definition of 'set()' in that specification. | Draft | Initial draft definition. |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 57 | 16 | 522 | No | 44 | 11 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | 57 | 57 | (Yes)1 | 522 | No | ? | 11 |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com