- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ECMAScript 6 Iterator和for...of循环
ECMAScript 6 Iterator和for...of循环
1. Iterator (遍历器)的概念
2. 数据结构的默认Iterator接⼜
3. 调⽤Iterator接⼜的场合
4 . 字符串的Iterator接⼜
5. Iterator接⼜与Generator 函数
6. 遍历器对象的return() ,throw()
7 . for ...of循环
Iterator (遍历器)的概念
JavaScript原 的表⽰“集合”的数据结构,主要是数组 (rray )和对象 (Object ),
ES6又添加了Map和Set 。这样就 了四种数据集合,⽤户还可以组合使⽤它们,定义
⾃⼰的数据结构,⽐如数组的成员是Map ,Map 的成员是对象。这样就需要⼀种统⼀
的接⼜机制,来处理所 不同的数据结构。
遍历器 (Iterator )就是这样⼀种机制。它是⼀种接⼜,为各种不同的数据结构提供统
⼀的访问机制。任何数据结构只要部署Iterator接⼜,就可以完成遍历操作 (即依次处
理该数据结构的所 成员)。
Iterator 的作⽤ 三个:⼀是为各种数据结构,提供⼀个统⼀的、简便的访问接⼜;⼆
是使得数据结构的成员能够按某种次序排列;三是ES6创造了⼀种新的遍历命令
for...of循环,Iterator接⼜主要供for...of消费。
Iterator 的遍历过程是这样的。
(1)创建⼀个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本
质上,就是⼀个指针对象。
(2 )第⼀次调⽤指针对象的next⽅法,可以将指针指向数据结构的第⼀个成员。
(3 )第⼆次调⽤指针对象的next⽅法,指针就指向数据结构的第⼆个成员。
(4 )不断调⽤指针对象的next⽅法,直到它指向数据结构的结束位置。
每⼀次调⽤next⽅法,都会返回数据结构的当前成员的信息。具体来说,就是返回
⼀个包含value和done两个属性的对象。其中,value属性是当前成员的值,done
属性是⼀个布尔值,表⽰遍历是否结束。
下⾯是⼀个模拟next⽅法返回值的例⼦。
var it = makeIterator([a, b]);
it.next() // { value: a, done: fal e }
it.next() // { value: b, done: fal e }
it.next() // { value: undefined, done: true }
function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
return nextIndex array .length ?
{value: array[nextIndex++], done: fal e} :
{value: undefined, done: true};
}
};
}
上⾯代码定义了⼀个makeIterator函数,它是⼀个遍历器⽣成函数,作⽤就是返回
⼀个遍历器对象。对数组[a, b]执⾏这个函数,就会返回该数组的遍历器对象
(即指针对象)it。
指针对象的next⽅法,⽤来移动指针。开始时,指针指向数组的开始位置。然后,
每次调⽤next⽅法,指针就会指向数组的下⼀个成员。第⼀次调⽤,指向a;第⼆次
调⽤,指向b。
next⽅法返回⼀个对象,表⽰当前数据成员的信息。这个对象具 value和done两
个属性,value属性返回当前位置的成员,done属性是⼀个布尔值,表⽰遍历是否
结束,即是否还 必要再⼀次调⽤next⽅法。
总之,调⽤指针对象的next⽅法,就可以遍历事先给定的数据结构。
对于遍历器对象来说,done: fal e和value: undefined属性都是可以省略的,
因此上⾯的makeIterator函数可以简写成下⾯的形式。
function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
return nextIndex array .length ?
{value: array[nextIndex++]} :
{done: true};
}
};
}
您可能关注的文档
- DL6A型轻轨电车盘形制动设计及试验_王军.pdf
- DM技术在信用卡管理中的应用.pdf
- DM8168的U-Boot编译.pdf
- Domino邮件路由配置建议-2013经验总结.pdf
- DOVAC双注射使用说明书.pdf
- DP-6600 or DP-6500 全数字便携式超声诊断系统.pdf
- Dreamweaver连接SQL Server三种方法.pdf
- DS1302带按键程序.doc
- DS-9000 9100 9600安装手册.pdf
- DSP-PIC仿真器.pdf
- 案例详解数据表p 5538f9f1 ahu.pdf
- 章政策结多项选择题宏观济学chtb.pdf
- 联机教程建议先看一下.pdf
- 安康市汉滨区电缆线路整治查修工程.pdf
- 文稿教程说明mtz0 xx swahili ab initio paper 1 sl markscheme.pdf
- 免疫分析法质量要求.pdf
- review questions of the circulatory system循环系统复习题.pdf
- sfc上影城百联滨江店.pptx
- sigma-sml共7 aldrich安全数据表.pdf
- 学习draw conclusions 2 process activity得出结论过程.pdf
文档评论(0)