Highlight: forEach() 方法

基准线 2025
新推出

自 2025 年 6 月起,此功能已在最新的设备和浏览器版本中可用。此功能可能不适用于旧设备或浏览器。

Highlight 接口的 forEach() 方法对 Highlight 对象中的每个 Range 对象执行一次提供的函数,按照插入顺序。

Highlight 是一个类似于 Set 的对象,因此这与使用 Set.forEach() 类似。

语法

js
forEach(callbackFn)
forEach(callbackFn, thisArg)

参数

回调

要对每个 Range 对象执行的函数,接受三个参数

range, key

Highlight 中当前正在处理的 Range 对象。由于 Highlight 中没有键,因此 range 会同时作为这两个参数传递。

highlight

调用 forEach()Highlight 对象。

thisArg

执行 callbackFn 时用作 this 的值。

返回值

无(undefined)。

示例

下面的代码片段展示了如何创建一个包含两个 range 的新高亮,然后使用 forEach() 方法来记录这些 range。

js
function logRanges(range, key, highlight) {
  console.log(`Highlight object ${highlight} contains range ${range}`);
}

const text = new Text("Time is an illusion. Lunchtime doubly so.");

const range1 = document.createRange();
range1.setStart(text, 0);
range1.setEnd(text, 4);

const range2 = document.createRange();
range2.setStart(text, 21);
range2.setEnd(text, 30);

const myHighlight = new Highlight();
myHighlight.add(range1);
myHighlight.add(range2);

myHighlight.forEach(logRanges);

规范

规范
ECMAScript® 2026 语言规范
# sec-set.prototype.foreach

浏览器兼容性

另见