web前端练习20----es6新语法7,生成器对象 Generator
Posted zhaihaohao1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web前端练习20----es6新语法7,生成器对象 Generator相关的知识,希望对你有一定的参考价值。
百度搜索 mdn Generator
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Generator
例子1 基本使用
// 例子1 基本写法
function* iGenerator()
yield 1;
yield 2;
yield 3;
// 生成对象
let generator = iGenerator();
console.log(generator.next());
console.log(generator.next());
console.log(generator.next());
console.log(generator.next());
//打印对象
// value: 1, done: false
// value: 2, done: false
// value: 3, done: false
// value: undefined, done: true
例子2 构建无穷大的结果集
// 例子2 构建无穷大的结果集
function* idMaker()
let index = 0;
while (true)
yield index++;
let dMaker = idMaker(); // "Generator "
console.log(dMaker.next());
console.log(dMaker.next());
console.log(dMaker.next());
// 打印结果
// value: 0, done: false
// value: 1, done: false
// value: 2, done: false
例子3 遍历生成器对象
// 例子3 遍历生成器对象
function* iidMaker()
let index = 0;
while (index<10)
yield index++;
let obj = iidMaker();
for (value of obj)
console.log(value);
// 0 1 2 3 4 5 6 7 8 9
例子4 可以递归调用
function* foo1()
yield 'a';
yield 'b';
function* foo2()
// 调用上一个生成器函数
yield* foo1();
yield 'c';
console.log([...foo2()]);
// 打印结果
// ["a", "b", "c"]
例子5 生成器对象转成数组
// 例子5 生成器对象转成数组
function* foo3()
yield 'a';
yield 'b';
yield 'c';
yield* ['d','e'];
console.log([...foo3()]);
// 打印结果 ["a", "b", "c", "d", "e"]
以上是关于web前端练习20----es6新语法7,生成器对象 Generator的主要内容,如果未能解决你的问题,请参考以下文章
web前端练习17----es6新语法4,数组,Set集合,Map集合
web前端练习21----使用babel,让es6兼容所有的浏览器
web前端练习27----Dom3,js操作css(class,内联样式,getComputedStyle)案例练习(列表刷新加载,二级菜单)