迭代器模式(Itrator Pattern)
|
1 2 3 |
定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 目的:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 场景:$.each() for..of。 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function each(iterable, callback) { if (iterable == null || typeof iterable[Symbol.iterator] !== 'function') { throw new TypeError('第一个参数必须是可迭代对象') } if (typeof callback !== 'function') { throw new TypeError('callback 必须是函数') } let index = 0 for (const value of iterable) { if (callback(index, value, iterable) === false) { break } index++ } return iterable } // 使用: each(new Set(['a', 'b', 'c']), (index, value) => { console.log(index, value) }) // 输出: 0 a 1 b 2 c |

