ES6 iterator 迭代器
iterator使用TypeScript 的描述:
interface Iterable {
[Symbol.iterator]() : Iterator,
}
interface Iterator {
next(value?: any) : IterationResult,
}
interface IterationResult {
value: any,
done: boolean,
}
一个数据结构只要具有Symbol.iterator
属性,就可以认为是“可遍历的”(iterable)。
对于类似数组的对象(存在数值键名和length
属性),部署 Iterator 接口,有一个简便方法,就是Symbol.iterator
方法直接引用数组的 Iterator 接口。
NodeList.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
// 或者
NodeList.prototype[Symbol.iterator] = [][Symbol.iterator];
[...document.querySelectorAll('div')] // 可以执行了
作者:孟繁贵 Email:meng010387@126.com 期待共同进步!