阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS function* 表达式

      function*关键字可以在表达式内部定义一个生成器函数。

      function* foo() {
        yield 'a';
        yield 'b';
        yield 'c';
      }
      
      var str = "";
      for (let val of foo()) {
        str = str + val;
      }
      
      console.log(str);
      // expected output: "abc"
      

      语法

      function* [name]([param1[, param2[, ..., paramN]]]) {
         statements
      }
      

      参数

      name

      函数名。在声明匿名函数时可以省略。函数名称只是函数体中的一个本地变量。

      paramN

      传入函数的一个参数名。一个函数最多有 255 个参数。

      statements

      函数体。

      描述

      function表达式和 function 声明比较相似,并具有几乎相同的语法。function表达式和 function声明之间主要区别就是函数名,即在创建匿名函数时,function*表达式可以省略函数名。阅读函数章节了解更多信息。

      示例

      下面的示例定义了一个未命名的生成器函数并把它赋值给 x。函数产出它的传入参数的平方:

      var x = function*(y) {
         yield y * y;
      };
      
      

      规范

      SpecificationStatusComment
      ECMAScript 2015 (6th Edition, ECMA-262)
      function*
      StandardInitial definition.
      ECMAScript Latest Draft (ECMA-262)
      function*
      Draft
      目录
      目录