ES6新特性——GeneratorFunction介绍
2016-09-22 11:23
211 查看
function* test(){} function * test(){} function *test(){} test = function* (){} test = function *(){}
上述均为生成器函数
还可以通过一下方式判断
Object.prototype.toString.call(test) // 显示[object GeneratorFunction]
生成器函数的行为与普通函数并不相同,表现为如下3点:
1. 通过new运算符或函数调用的形式调用生成器函数,均会返回一个生成器实例; 2. 通过new运算符或函数调用的形式调用生成器函数,均不会马上执行函数体的代码; 3. 必须调用生成器实例的next方法才会执行生成器函数体的代码。
关键字yield——迭代器生成器
用于马上退出代码块并保留现场,当执行迭代器的next函数时,则能从退出点恢复现场并继续执行下去。下面有2点需要注意:
1. yield后面的表达式将作为迭代器next函数的返回值; 2. 迭代器next函数的入参将作为yield的返回值(有点像运算符)。
相关文章推荐
- 【微信小程序+ES6新特性应用】使用箭头操作符简化回调函数繁琐的编写过程
- ES6中非常实用的新特性介绍
- ES6--Class、Module及常用特性
- ES6,ES2105核心功能一览,js新特性详解
- ECMAScript6(ES6)标准之函数扩展特性箭头函数、Rest参数及展开操作符
- 关于JavaScript中ES6新特性概览总结
- ES6新特性概览
- ES6中let 和 const 的新特性
- 前端工程师不得不知道的ES6新特性(一)
- ES6新特性:JavaScript中的Reflect对象
- ES6新特性-----变量和字符串
- 简约而不简单的六个ES6新特性
- ES6新特性-------数组、Math和扩展操作符(续)
- 10个最佳ES6特性
- 10个最佳ES6特性
- es6新特性之箭头函数
- ES6新特性简介
- ES6新特性三: Generator(生成器)函数详解
- ES6新特性 Class的实现
- ES6新特性