ES6新特性--Generators

ES6新特性--Generators

可以從兩個角度理解Generators,它既是狀態機也是一個遍歷器對象生成函數。執行該函數可以理解為啟動了遍歷器,之後每次執行next()函數則每次執行到yield處。

值得注意的是執行next()時可添加參數,這實現了在函數運行的不同階段,可以從外部向內部注入不同的值,生成器使用function*yield簡化了迭代過程,使用function*定義的函數返回了一個生成器實例。

生成器是迭代器的子類,但是包含next和throw。這使得值可以迴流到生成器,yield是一個可以返回值的表達式。

for...of循環可以自動遍歷 Generator 函數時生成的Iterator對象,此時不再需要調用next方法。

Generator的return方法會返回固定的值,終結遍歷Generator函數。返回值的value屬性就是return方法的參數,返回值的done屬性為true。

ES6新特性--Generators

輸出結果

ES6新特性--Generators


分享到:


相關文章: