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

生成器 Generators

时间:2017-08-24 21:22:41      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:var   one   color   执行   译文   span   表达   介绍   UI   

function* quips(name) {
  yield "你好 " + name + "!";
  yield "希望你能喜欢这篇介绍ES6的译文";
  if (name.startsWith("X")) {
    yield "你的名字 " + name + "  首字母是X,这很酷!";
  }
  yield "我们下次再见!";
}
  • 普通函数使用function声明,而生成器函数使用function*声明。
  • 在生成器函数内部,有一种类似return的语法:关键字yield。二者的区别是,普通函数只可以return一次,而生成器函数可以yield多次(当然也可以只yield一次)。在生成器的执行过程中,遇到yield表达式立即暂停,后续可恢复执行状态。
    > var iter = quips("jorendorff");
      [object Generator]
    > iter.next()
      { value: "你好 jorendorff!", done: false }
    > iter.next()
      { value: "希望你能喜欢这篇介绍ES6的译文", done: false }
    > iter.next()
      { value: "我们下次再见!", done: false }
    > iter.next()
      { value: undefined, done: true }

     

生成器 Generators

标签:var   one   color   执行   译文   span   表达   介绍   UI   

原文地址:http://www.cnblogs.com/avidya/p/7424940.html

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