javascript语言扩展:可迭代对象(2)
来源:互联网 发布:winhex linux 编辑:程序博客网 时间:2024/04/29 14:00
在文章迭代器(1)中我们简单介绍了如何创建一个可迭代对象;出于某种考虑你可能想从可迭代对象中显式获取一个迭代器对象,这时你可以调用Iterator()函数(该函数是定义在JavaScript 1.7中的全局函数),如果该函数的参数味一个可迭代对象,那么它将放回这个对象的__iteratior__()的返回值;Iterator()还可以传入第二个参数,该参数会参与__iterator__方法的调用。
Iterator()函数还有一个重要目的,如果传入的对象或数组没有定义__iterator__()方法,则会返回该对象的一个可迭代的自定义迭代器;该自定义迭代器的next()方法会返回一个包括2个值数组:第一个元素是属性名,第二个元素是属性值。
var obj = {x:1,y:11,z:111,last:"end"}for(x in Iterator(obj)) console.log(x)
以上代码运行结果为:
["x", 1]["y", 11]["z", 111]["last", "end"]
Iterator()函数返回的迭代器还有2个重要特效:
1:只对自有属性进行遍历而忽略继承的属性;
2:入给其传入第二个参数true,则返回的迭代器只对属性名遍历,而忽略属性值:
var obj = {x:1,y:2}Object.prototype.z = 3;for(p in obj) console.log(p); //输出x,y,zfor(p in Iterator(obj)) console.log(p); //输出["x",1],["y",2]for(p in Iterator(obj,true)) console.log(p); //输出x和y
0 0
- javascript语言扩展:可迭代对象(2)
- javascript语言扩展:可迭代对象(1)
- javascript语言扩展:可迭代对象(3)
- javascript语言扩展:可迭代对象(4)
- javascript语言扩展:可迭代对象(5)
- javaScript语言----对象2
- 《JavaScript语言精粹》笔记(2)--对象
- Javascript 对象扩展积累
- webkit 扩展 JavaScript 对象
- JavaScript对象扩展
- 扩展javascript内置对象
- 扩展javascript原生对象
- 扩展javascript扩展(类,对象,原型)
- JavaScript String 对象及扩展
- Javascript面向对象扩展库
- WebKit的JavaScript对象扩展
- Chromium的JavaScript对象扩展
- JavaScript语言精粹学习笔记(2)——对象
- 快速幂取模
- android 乱码问题
- 搭建quick-cocos2dx调试环境出错
- 浅谈my_memcpy()函数的实现
- 二哥学算法之归并排序和希尔排序
- javascript语言扩展:可迭代对象(2)
- 让button有边框,或变成圆形
- leetcode4 ---Longest Substring Without Repeating Characters
- 【jQuery】网页文本格式编辑器xheditor
- 黑马程序员——C语言基础(一)C语言简述及关键字
- [Vijos 1049] 送给圣诞夜的礼品 · 矩阵乘法
- 古代智慧与当代爱情 之 《仲夏夜之梦》
- FlowLayout
- 某个年份是否是闰年