var clock = function*() { while (true) { console.log('Tick!'); yield; console.log('Tock!'); yield; }};可以看到,Generator 函數(shù)實(shí)現(xiàn)的狀態(tài)機(jī)不用設(shè)初始變量,不用切換狀態(tài),上面的Generator函數(shù)實(shí)現(xiàn)與ES5實(shí)現(xiàn)對(duì)比,可以看到少了用來(lái)保存狀態(tài)的外部變量ticking,這樣就更簡(jiǎn)潔,更安全(狀態(tài)不會(huì)被非法篡改)、更符合函數(shù)式編程的思想,在寫(xiě)法上也更優(yōu)雅。Generator之所以可以不用外部變量保存狀態(tài),是因?yàn)樗旧砭桶说谝粋€(gè)狀態(tài)和第二個(gè)狀態(tài)。包含了第一個(gè)和第二個(gè)狀態(tài)怎么理解???怎么實(shí)現(xiàn)切換的
ES6中Generator函數(shù)中clock函數(shù)問(wèn)題
慕標(biāo)琳琳
2019-03-21 18:13:05