麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

Prototype使用指南之enumerable.js

2024-09-06 12:43:55
字體:
來源:轉載
供稿:網友
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文件也變得越來越大,浪費帶寬啊 唉,發現其中很多函數越解釋越難懂,大家還是多多看看源代碼理解吧,偶的文字表達能力真的不乍的,有的實在不知道怎么表達, 希望大家還是只是把本文當成一個不正規的參考,有什么問題還是看源代碼理解,不然誤導了你我可不負責啊
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲国产成人久久成人52 | 精品一区二区电影 | 黄色高清免费 | 国产精品视频一区二区三区四区国 | 日日鲁一鲁视频 | 亚洲一区二区中文字幕在线观看 | 在线a毛片 | 91成人久久| 久久九九热re6这里有精品 | 看免费黄色一级片 | 黄色大片网站在线观看 | 中文字幕亚洲欧美 | 制服丝袜成人动漫 | 国产精品久久久久久久久久东京 | 毛片在线免费观看视频 | 水多视频在线观看 | 亚洲国产精品高潮呻吟久久 | 国产中文av在线 | 免费播放欧美毛片 | 色猫av| 蜜桃网在线观看 | 欧美激情第一区 | 在线播放亚洲 | 韩毛片 | 7777奇米成人四色影视 | 国产精品久久久久av | 久久久久久久久久久影视 | 久久精品国产亚洲7777 | 国产精品久久久不卡 | 久草亚洲视频 | 青青草最新网址 | 舌头伸进添的我好爽高潮网站 | 国产精品久久久久网站 | 九九热视频在线免费观看 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 免费网址黄 | 国产成人精品免高潮在线观看 | 久久无 | 久久久久国产精品久久久久 | 免费a级黄色片 | 欧美一级高潮片免费的 |