Prototype使用指南之enumerable.js


Posted in Javascript onJanuary 10, 2007

Enumerable是一个抽象对象(需要说明的是,javascript中并没有类的概念,所指的类也就是一个函数,继承一般指的是一个对象(父)将它的方法属性copy(通过Object.extend, copy的是引用)到子类(函数)的prototype属性(一个对象)中) Enumerable不能直接使用,它被很多枚举类型(Hash、Array、Range等)所继承,继承的类型都要实现一个_each方法,提供具体类型的枚举方法 Enumerable为其他子类提供了如下的方法: each(iterator): iterator是一个函数对象, 这个方法调用具体类型的_each方法对自身包含的每个对象调用iterator,例如如果Enumerable具体指的是一个Array,eg: var a=[2,3,4], 则a.each(iterator)方法将依次调用iterator(2,0) ,iterator(3,1), iterator(4,3),其中第二个参数指的是索引。这个方法几乎在Enumerable中的每个方法中都要用到 eachSlice(number, iterator):将Enumerable类型对象每个每个按照number分开,例如[1,2,3,4,5].eachSlice(3)=>[[1,2,3],[4,5]], 没有提供iterator, 则iterator=Prototype.K: function(k){return k},Prototype中的很多iterator默认值都是这个,或者是Prototype.emptyFunction: function() {},其实实际上返回的是[iterator([1,2,3]),iterator([4,5])] all(iterator): 对Enumerable类型中的每个值调用iterator,如果其中有一个返回false,则返回false,否则返回true,相当于判断是否每个值执行iterator都是"true" any(iterator): 跟all相反,判断是否每个值都是"false"(是否有一个值是true) collect(iterator)/map: 对每个值调用iterator,将结果组成一个新的数组返回 detect(iterator)/find: 对每个值调用iterator,如果有一个不为false,则返回这个执行iterator后不为false的值(不是返回执行iterator后的值),相当于找出第一个真值 findAll(iterator)/select: 相当于detect, 但是找出所有的真值,返回一个数组 grep(pattern, iterator):返回所以符合pattern的值,iterator提供的话,则返回执行iterator的值 include(object)/member: 数组中是否包含object inGroupsOf(number, fillWith): eachSlice的变异版本,按照number将对象分开,如果分开后的数组的最后一个值的length小于number, 则用fillwith填充, 例如[1,2,3,4,5].inGroupsOf(3)=>[[1,2,3],[4,5,null]] inject(memo, iterator): 注入 invoke(method): 调用 max(iterator): 最大值 min(iterator): 最小值 partition(iterator): 分离 pluck(property): 采集 reject(iterator): 不合格的产品, 于findAll相反 sortBy(iterator): 根据iterator排序,如果调用的对象是Array的话,直接调用内置的sort(iterator)就行了 toArray()/entries: 将调用对象的每个值组成一个数组返回 zip(): 例如[2,3,4].zip([5,6,7])=>[[2,5],[3,6],[4,7]], 如果最后一个参数类型为function,将返回[iterator([2,5]),iterator([3,6]),iterator([4,7])], inspect(): Enumerable对象的字符串表示 NND的,原来Enumerable有这么多函数,感觉作者是不是学习Ruby太过了,把什么方法都往Prototype上挪,搞的我们学习的也辛苦,Prototype文件也变得越来越大,浪费带宽啊 唉,发现其中很多函数越解释越难懂,大家还是多多看看源代码理解吧,偶的文字表达能力真的不乍的,有的实在不知道怎么表达, 希望大家还是只是把本文当成一个不正规的参考,有什么问题还是看源代码理解,不然误导了你我可不负责啊

Javascript 相关文章推荐
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
JS+CSS实现的经典tab选项卡效果代码
Sep 16 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
Feb 09 Javascript
React学习笔记之高阶组件应用
Jun 02 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
Nuxt 项目性能优化调研分析
Nov 07 Javascript
Prototype使用指南之base.js
Jan 10 #Javascript
Prototype使用指南之string.js
Jan 10 #Javascript
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 #Javascript
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 #Javascript
[JS源码]超长文章自动分页(客户端版)
Jan 09 #Javascript
Javascript与vbscript数据共享
Jan 09 #Javascript
In Javascript Class, how to call the prototype method.(three method)
Jan 09 #Javascript
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
PHP中ADODB类详解
2008/03/25 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python内存动态分配过程详解
2019/07/15 Python
Python气泡提示与标签的实现
2020/04/01 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
文明礼仪事迹材料
2014/01/09 职场文书
小学教师培训感言
2014/02/11 职场文书
万年牢教学反思
2014/02/15 职场文书
应聘教师求职信
2014/07/19 职场文书
高一军训的心得体会
2014/09/01 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
实习生辞职信范文
2015/03/02 职场文书
员工自我工作评价
2015/03/06 职场文书
个人简历求职信范文
2015/03/20 职场文书
催款函范本大全
2015/06/24 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书