1。概述
发电机是一种新的数据
类型引入ES6和看起来像一个
函数,和产量可以除了收益返还多少次。
生成器由函数*定义,(注*编号),
2。实例
函数不能
保存状态,有时需要全局变量来保存数字。
二点一
严格使用;
功能next_id(){
var = 1;
当(id < 100){
收率;
身份证+;
}
返回ID;
}
测试:
VaR
X,
传递=真,
G = next_id();
对于(x = 1;x<100;x + +){
如果(g.next(价值)!= x){
传递= false;
警报(测试失败!);
打破;
}
}
如果(通过){
警报(测试通过!);
}
2.2无限循环迭代器
功能* idmaker(){
var指数= 0;
虽然(真实)
产量指数+;
}
VaR创= idmaker(发电机); / / { }
console.log(gen.next)(价值); / / 0
console.log(gen.next)(价值); / / 1
console.log(gen.next)(价值); / / 2
2.3generator.prototype.next()
在迭代结束时,generator.next()= = =真。完成,结束前的= = =假
函数*(){
产量1;
产量2;
产量3;
}
生成器(生成器)
(g.next); / /
目标值::假{ 1 }
(g.next); / /目标值::假{ 2 }
(g.next); / /目标值::假{ 3 }
(g.next); / /对象定义:{ },真正的价值:
2.4 generator.prototype.return();
返回
方法返回给定的
参数值并结束迭代器。
例子
函数*(){
产量1;
产量2;
产量3;
}
var(=);
G.next(价值); / / { 1 },做:假
G.return(foo); / / {价值:,:}真的foo
G.next(价值:未定义); / / { },真正做到:
请注意,如果完成的值是true,则返回调用,返回的值也是未定义的。
函数*(){ 1;}
var(=);
Console.log((g.next)); / / {价值:1、做:假}
Console.log((g.next)); / / {价值:定义,完成:true}
console.log(g.return(1)); / / {价值:定义,完成:true}
2.5 generator.prototype.throw()
的thorw()方法,通过抛出异常的迭代器,获取迭代器
执行一遍。
返回具有两个值
属性并完成的对象对象
函数*(){
当(真){
{试
产量42;
} catch(e){
console.log(捕获
错误!;
}
}
}
var(=);
创建一个g.next();
值:已完成:false 42 { },
var b = g.throw(新的错误(错误)));
错误/捕获!
值:已完成:false 42 { },
console.log(一);
console.log(答案+::+ b.done);
这种深入的了解JS发电数据类型是萧边
分享你的全部内容。我希望能给你一个
参考,我希望你会得到很多
支持。