在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ ES6中Generator函數(shù)中clock函數(shù)問題

ES6中Generator函數(shù)中clock函數(shù)問題

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)對比,可以看到少了用來保存狀態(tài)的外部變量ticking,這樣就更簡潔,更安全(狀態(tài)不會被非法篡改)、更符合函數(shù)式編程的思想,在寫法上也更優(yōu)雅。Generator之所以可以不用外部變量保存狀態(tài),是因?yàn)樗旧砭桶说谝粋€狀態(tài)和第二個狀態(tài)。

包含了第一個和第二個狀態(tài)怎么理解???怎么實(shí)現(xiàn)切換的
回答
編輯回答
離觴

至少貼個上下文或者鏈接吧。。

第一個和第二個狀態(tài)指的是變量ticking的值,先是true后是false
沒必要切換,因?yàn)?code>clock函數(shù)在執(zhí)行完后就沒有了,為了保證下一次執(zhí)行能夠正確獲得上一次的狀態(tài),才需要一個外部變量。而Generator則不需要,它的內(nèi)部機(jī)制保證了它可以得到上一個狀態(tài)的信息。

2017年7月16日 13:45