介绍
迭代器模式是一种相对简单的模式,相对普通的for
循环它隐藏了迭代的具体细节.
伪代码
betterFor(param,fn) {
if(typeof fn === 'object') {
for(let i in param ) {
fn.call(i)
}
return
}
if(Array.isArray(param)) {
for(let i = 0,len= param.length;len<i; i++) {
fn.call(null, param[i])
}
return
}
throw new Error('something happens')
}
小结
上面的伪代码使用了外观模式提供了一个统一的接口来遍历循环数组或者对象,使用了迭代器模式实现了对数组的循环操作。使用者只需要调用betterFor
方法,而不需要关心迭代的具体细节。