1.定義:generator是一個(gè)生成器,用來返回迭代器的,和普通函數(shù)不同的是不會(huì)一次全部執(zhí)行完,迭代器中有一個(gè)next方法,每次調(diào)用next就向下執(zhí)行一步。
2.原理:可以把一個(gè)函數(shù)分割成若干個(gè)小函數(shù),內(nèi)部維護(hù)一個(gè)指針,每次根據(jù)條件判斷移動(dòng)指針,知道執(zhí)行結(jié)束
3.實(shí)現(xiàn)
function gen (arr){
let index = 0;
next () {
return {value: arr[index], done: index++ === arr.length ? true : false}
}
}