一、迭代器模式在Redux源碼中的使用

二、迭代器模式在Koa2源碼中的使用

場景一、二都是利用迭代器模式,依次調(diào)用中間件,從而實(shí)現(xiàn)各個框架中的洋蔥模型。
三、 迭代器模式在Webpack源碼中的使用

簡單解釋下,實(shí)參modulesData是從入口文件出發(fā),通過遞歸分析得到的,所有依賴文件的集合,其格式如下:

四、迭代器模式在es6中是使用
es6中之所以可以實(shí)現(xiàn)數(shù)組的擴(kuò)展運(yùn)算符以及for..of循環(huán),是因?yàn)槠鋬?nèi)部定義了一個[Symbol.iterator]屬性,這個屬性的value是一個函數(shù)(迭代函數(shù)),其大致實(shí)現(xiàn)如下:

五、其他
這里只是舉幾個簡單的例子,其實(shí)迭代器模式在前端領(lǐng)域還有非常廣泛的應(yīng)用,比如vue-router中各個導(dǎo)航守衛(wèi)的依次調(diào)用、async&await函數(shù)的實(shí)現(xiàn)等。