簡單解釋 JavaScript Generator
JavaScript Generator 是一種特殊的函數,允許函數在執行過程中暫停並恢復。
- 定義方式:在
function
關鍵字後面加上星號 (function*
)。 - 返回值:Generator 函數返回一個迭代器。
- 暫停與恢復:透過
yield
關鍵字,Generator 可以暫停執行,並返回一個值;後續可以透過迭代器的next()
方法繼續執行。
function* powers(n) {
for (let current = n;; current *= n) { // 從 n 開始,每次乘以 n
yield current; // 暫停函數,並返回當前的值
}
}
for (let power of powers(3)) { // 使用 for...of 迭代生成器
if (power > 50) break; // 當值超過 50 時停止迴圈
console.log(power); // 輸出當前的值
}
// → 3
// → 9
// → 27