zoukankan      html  css  js  c++  java
  • 02函数-05-generator(ES6)

    generator(生成器)是ES6标准引入的新的数据类型。

    generator看上去像一个函数,但可以返回多次,除了return语句,还可以用yield返回多次。定义方式如下:
    function* foo(x) { 
        yield x + 1;
        yield x + 2;
        return x + 3;
    }

    直接调用generator和调用函数不同,不会立刻执行,而是创建了generator对象。想要调用,有两种方法,接以上语法示例代码为例:

    (1)不断使用generator对象的next()方法,会返回yield和return的值

    var test = foo(3);
    test.next(); // Object {value:4, done:false}
    test.next(); // Object {value:5, done:false}
    test.next(); // Object {value:6, done:true}
    test.next(); // Object {value:undefined, done:true}

    next方法执行时每遇到yield会返回一个对象,包含返回的值,以及done属性,该属性表示generator是否执行结束。

    (2)使用 for ... of 迭代generator对象,返回yield的值,不需要我们自己判断done

    for(var x of foo(3)){
      console.log(x);
    }
    //4, 5


  • 相关阅读:
    Jmeter响应断言的处理。
    Jmeter超时处理。
    HTTP协议简介以及特点。
    自动化测试面试技巧。
    父类构造方法有无参数对子类的影响。
    自动化分层思想分析1.
    设计模式
    遍历课程列表代码。
    如何遍历当前页课程定位分析,以及代码编写。
    “笨方法”学习Python笔记(1)-Windows下的准备
  • 原文地址:https://www.cnblogs.com/deng-cc/p/6622730.html
Copyright © 2011-2022 走看看