迭代器模式是一种相对简单的模式,目前的绝大部分语言都内置了迭代器
迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。
例子:
内部迭代器
for in
for of
$.each
外部迭代器
外部迭代器必须显式地请求下一个元素,外部迭代器增加了一些调用的复杂度,但相对也增强了迭代器的灵活性,我们可以手工控制迭代的过程和顺序
var Iterator = function( obj ){
//初始化索引
var current = 0;
//下一个
var next = function(){
current += 1;
};
//如果当前的索引大于或者等于参数的个数,则已经是最后一个
var isDone = function(){
return current >= obj.length;
};
//获取当前迭代对象
var getCurrItem = function(){
return obj[ current ];
};
//返回
return {
next: next,
isDone: isDone,
getCurrItem: getCurrItem
}
};
调用方式相对复杂,但他的适用面更广,也能满足更多变得需求。
网友评论