JS設計模式——迭代器模式
阿新 • • 發佈:2019-02-20
模式作用:
1,為遍歷不同的集合結構提供一個統一的介面,從而支援同樣的演算法在不同的集合結構上進行操作
2,對於集合內部結果常常變化各異,我們不想暴露其內部結果的話,但又想讓客戶程式碼透明的訪問其中的元素,這種情況下我們可以使用迭代器模式
注意事項:
1,一般的迭代,我們至少要有2個方法,hasNext()和Next(),這樣才能做到遍歷所有物件
2,遍歷的同時更改迭代器所在的集合結構可能會導致問題(比如C#的foreach裡不允許修改item)
1,為遍歷不同的集合結構提供一個統一的介面,從而支援同樣的演算法在不同的集合結構上進行操作
2,對於集合內部結果常常變化各異,我們不想暴露其內部結果的話,但又想讓客戶程式碼透明的訪問其中的元素,這種情況下我們可以使用迭代器模式
注意事項:
1,一般的迭代,我們至少要有2個方法,hasNext()和Next(),這樣才能做到遍歷所有物件
2,遍歷的同時更改迭代器所在的集合結構可能會導致問題(比如C#的foreach裡不允許修改item)
<meta charset="utf-8"> <script type="text/javascript"> var arr=["1","2","3"]; var diedai=(function(){ var length=arr.length; index=0; return{ hasNext:function(){ return index<length; }, next:function(){ var data=arr[index]; index=index+1; return data; }, reset:function(){ index=0; } }; })(); //自執行函式 while(diedai.hasNext()){ console.log(diedai.next()); } //jQuery的each方法呼叫 // $.each(arr,function(index,val){ // console.log(index); // console.log(val); // }); </script>