WebAssembly.Table.prototype.grow()

Baseline 已广泛支持

此功能已非常成熟,可在多种设备和浏览器版本上使用。自 2017 年 10 月以来,它已在各大浏览器中可用。

grow() 属性方法 WebAssembly.Table 对象将指定数量的元素增加Table实例的大小,并使用提供的值进行填充。

语法

js
grow(delta)
grow(delta, value)

参数

delta

您希望表扩展的元素数量。

value 可选

用于填充新分配空间的元素。

返回值

表的先前长度。

异常

RangeError

在以下情况之一中抛出

  • 如果当前大小加上delta超过了Table实例的最大大小容量。
  • 如果客户端没有足够的内存进行分配。
TypeError

如果value不是表的元素类型值,则抛出。

示例

使用 grow

以下示例创建了一个新的 WebAssembly Table 实例,初始大小为 2,最大大小为 10

js
const table = new WebAssembly.Table({
  element: "anyfunc",
  initial: 2,
  maximum: 10,
});

使用 Table.grow() 将表扩展 1 个元素

js
console.log(table.length); // 2
table.grow(1);
console.log(table.length); // 3

使用带值的 grow

以下示例创建了一个新的 WebAssembly Table 实例,初始大小为 0,最大大小为 4,并用一个对象填充它

js
const myObject = { hello: "world" };

const table = new WebAssembly.Table({
  element: "externref",
  initial: 0,
  maximum: 4,
});

使用 WebAssembly.grow() 将表扩展 4 个单位并用值填充

js
table.grow(4, myObject);
console.log(myObject === table.get(2)); // true

规范

规范
WebAssembly JavaScript 接口
# dom-table-grow

浏览器兼容性

另见