Genertor
Contents
Generator函数
|
|
- generator函数返回Itorator对象
yield 和 return
|
|
- yield 返回的done状态为false
- return 返回的done状态为true,并不执行return后面的语句
for…of 循环
|
|
- 一旦next方法的返回对象的done属性为true,for…of循环就会中止,且不包含该返回对象,所以上面代码的return语句返回的6,不包括在for…of循环之中。
- 扩展运算符(…)、解构赋值和Array.from方法内部调用的,都是遍历器接口。123456789101112131415161718192021222324function* numbers () {yield 1yield 2return 3yield 4}// 扩展运算符[...numbers()] // [1, 2]// Array.from 方法Array.from(numbers()) // [1, 2]// 解构赋值let [x, y] = numbers();x // 1y // 2// for...of 循环for (let n of numbers()) {console.log(n)}// 1// 2