zoukankan      html  css  js  c++  java
  • ES6基础之——生成器Generators

    手共创建迭代器有点麻烦,我们可以使用Generators去生成迭代器,Generators可以翻译成生成器
    先看一下一个简单的生成器,定义一个生成器用的是
    functions* chef(){
      yield 'tomato';
      yield 'eggs';
    }
    let zhangsan=chef();
    

      

    现在zhangsan就是一个迭代器,可以使用next()方法把他返回的东西输出在控制台,结果如下:
    console.log(zhangsan.next()); //{value:'tomato',done:false}
    console.log(zhangsan.next()); //{value:'eggs',done:false}
    console.log(zhangsan.next()); //{value:undefined,done:true}
    下面再改造一下chef生成器:将它接受一个参数,名字为foods,在函数里面使用for循环,每次循环都yield当前循环项
    functions* chef(foods){
    for(var i=0;i<foods.lingth;i++){
      yield foods[i]
    }
    }
    let zhangsan=chef(['tomato','eggs']);
    console.log(zhangsan.next()); //{value:'tomato',done:false}
    console.log(zhangsan.next()); //{value:'eggs',done:false}
    console.log(zhangsan.next()); //{value:undefined,done:true}
    这个生成器也可以使用函数表达的方式创建
    let chef =functions* (foods){
      for(var i=0;i<foods.lingth;i++){
        yield foods[i]
      }
    }
    let zhangsan=chef(['tomato','eggs']);
    console.log(zhangsan.next()); //{value:'tomato',done:false}
    console.log(zhangsan.next()); //{value:'eggs',done:false}
    console.log(zhangsan.next()); //{value:undefined,done:true}
    
  • 相关阅读:
    Jquery同步载入数据
    fireEvent方法
    条件判断问题,不太清楚有什么区别!
    Request.QueryString,Request.Form与JavaScript中模态窗口传参
    SQL求百分比
    event.srcElement
    判断输入信息为数值类型
    SQL 表变量,临时表
    读写二进制文件
    串口通信
  • 原文地址:https://www.cnblogs.com/fe-cherrydlh/p/11112145.html
Copyright © 2011-2022 走看看