WebAssembly.Table.prototype.grow()

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见