JavaScript 生成器

生成器

生成器是一种惰性的序列,它支持一边读取数据,一边生成数据,如果数据比较大时,这种机制能节省很多内容空间。JavaScript 在 ES6 标准中也新增了对生成器的支持。

/* 
 生成器的构造是用函数来包装,但是我们应该把下例看成是一个 [1,2,3,4,5] 的序列,而不是一个函数
*/

function* f() {
 for (let i=0; i<5; i++){
  yield i // 返回并记录函数状态
 }
}

var f = f()

console.log(f.next()) // { value: 0, done: false }
console.log(f.next()) // { value: 1, done: false }
console.log(f.next()) // { value: 2, done: false }
console.log(f.next()) // { value: 3, done: false }
console.log(f.next()) // { value: 4, done: false }
console.log(f.next()) // { value: undefined, done: true }

/*
  每调用一次 next,就执行一次 yield | 依靠这种需要才生产的工作机制,大大的节省资源
*/
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程