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 相关文章推荐
[原创]保存的js无法执行的解决办法
Feb 25 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
19个很有用的 JavaScript库推荐
Jun 27 Javascript
45个JavaScript编程注意事项、技巧大全
Feb 11 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 Javascript
Vue常见面试题整理【值得收藏】
Sep 20 Javascript
2种在vue项目中使用百度地图的简单方法
Sep 28 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
js比较两个单独的数组或对象是否相等的实例代码
Apr 28 Javascript
详解在Angular4中使用ng2-baidu-map的方法
Jun 19 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
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
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
非常实用的php验证码类
2016/05/15 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
javascript下function声明一些小结
2007/12/28 Javascript
自己开发Dojo的建议框架
2008/09/24 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
python中xlutils库用法浅析
2020/12/29 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
文史专业毕业生自荐信
2013/11/17 职场文书
幼教个人求职信范文
2013/12/02 职场文书
公司前台辞职报告
2014/01/19 职场文书
党员教师工作决心书
2014/03/13 职场文书
全国文明单位申报材料
2014/05/31 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
员工生日活动方案
2014/08/24 职场文书
践行三严三实心得体会
2014/10/13 职场文书
简单租房协议书
2014/10/21 职场文书
爱情保证书
2015/01/17 职场文书
物业接待员岗位职责
2015/04/15 职场文书