码迷,mamicode.com
首页 > 其他好文 > 详细

ES6 Generator 学习笔记一

时间:2017-07-21 15:57:03      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:记忆   方案   size   生成器   生成   func   str   学习笔记   多个   

  Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。

  Generator 函数有多种理解角度。从语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。  执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

  形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。

 

  yield表达式与return语句既有相似之处,也有区别:  

  相似之处在于,都能返回紧跟在语句后面的那个表达式的值。区别在于每次遇到yield,函数暂停执行,下一次再从该位置继续向后执行,而return语句不具备位置记忆的功能。一个函数里面,只能执行一次(或者说一个)return语句,但是可以执行多次(或者说多个)yield表达式。正常函数只能返回一个值,因为只能执行一次return;Generator 函数可以返回一系列的值,因为可以有任意多个yield。从另一个角度看,也可以说 Generator 生成了一系列的值,这也就是它的名称的来历(英语中,generator 这个词是“生成器”的意思)。

ES6 Generator 学习笔记一

标签:记忆   方案   size   生成器   生成   func   str   学习笔记   多个   

原文地址:http://www.cnblogs.com/lulin1/p/7217395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!