Generator 简介
? ? ??Generator 就是一種狀態(tài)機(jī),封裝多個內(nèi)部狀態(tài)。
? ? ? 執(zhí)行 Generator 函數(shù)會返回一個遍歷器對象(),也就是說,Generator 函數(shù)除了狀態(tài)機(jī),還是一個遍歷器對象生成函數(shù)。返回的遍歷器對象,可以依次遍歷 Generator 函數(shù)內(nèi)部的每一個狀態(tài)。
? ? ? ?形式上,Generator 函數(shù)是一個普通函數(shù),但是有兩個特征。一是,function關(guān)鍵字與函數(shù)名之間有一個星號;二是,函數(shù)體內(nèi)部使用yield表達(dá)式,定義不同的內(nèi)部狀態(tài)(yield在英語里的意思就是“產(chǎn)出”)。
? ? ? 然后,Generator 函數(shù)的調(diào)用方法與普通函數(shù)一樣,也是在函數(shù)名后面加上一對圓括號。不同的是,調(diào)用 Generator 函數(shù)后,該函數(shù)并不執(zhí)行,返回的也不是函數(shù)運(yùn)行結(jié)果,而是一個指向內(nèi)部狀態(tài)的指針對象,也就是上一章介紹的遍歷器對象(Iterator Object)。
? ? ? 下一步,必須調(diào)用遍歷器對象的next方法,使得指針移向下一個狀態(tài)。也就是說,每次調(diào)用next方法,內(nèi)部指針就從函數(shù)頭部或上一次停下來的地方開始執(zhí)行,直到遇到下一個yield表達(dá)式(或return語句)為止。換言之,Generator 函數(shù)是分段執(zhí)行的,yield表達(dá)式是暫停執(zhí)行的標(biāo)記,而next方法可以恢復(fù)執(zhí)行
? ? ? 詳情:http://es6.ruanyifeng.com/#docs/generator
?
轉(zhuǎn)載于:https://www.cnblogs.com/cnlg123/p/8467069.html
總結(jié)
以上是生活随笔為你收集整理的Generator 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali操作系统SSH问题解决方案
- 下一篇: 除了给予人权,欧洲议会还要让机器人纳税