深刻理解js生成器数据类型

深刻理解js生成器数据类型
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发电数据类型是萧边分享你的全部内容。我希望能给你一个参考,我希望你会得到很多支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部