Symbol.iterator

Symbol.iterator为每一个对象定义了默认的迭代器。该迭代器可以被for...of循环使用。
image

描述

当需要对一个对象进行迭代时(比如开始用于一个for..of循环中),他的@@iterator方法都会在不传参情况下被调用,返回的迭代器用于获取迭代的值。

一些内置类型拥有默认的迭代器行为,其它类型(如Object)则没有。下表中的内置类型拥有默认的@@iterator方法:
image

自定义迭代器

var myIterable = {}
myIterable[Symbol.iterator] = function*(){
yield 1;
yield 2;
yield 3;
};
[...myIterable] //[1,2,3]

兼容性:不支持IE

posted @ 2021-12-27 11:46  举个栗子走天下  阅读(320)  评论(0编辑  收藏  举报