(1)解构赋值

    对数组和 Set 结构进行解构赋值时,会默认调用方法。

    扩展运算符(…)也会调用默认的 Iterator 接口。

    上面代码的扩展运算符内部就调用 Iterator 接口。

    (3)yield*

    后面跟的是一个可遍历的结构,它会调用该结构的遍历器接口。

    由于数组的遍历会调用遍历器接口,所以任何接受数组作为参数的场合,其实都调用了遍历器接口。下面是一些例子。

    • for…of
    • Map(), Set(), WeakMap(), WeakSet()(比如)
    • Promise.race()