直接代码
class Iterator{
constructor(container){
this.list = container.list
this.index = 0
}
next(){
if(this.hasNext()){
return this.list[this.index++]
}
return null
}
hasNext(){
if(this.index >= this.list.length){
return false
}
return true
}
}
class Container{
constructor(list){
this.list = list
}
getIterator(){
return new Iterator(this)
}
}
//test
let aarr = [1,2,3,4,5,6]
let container = new Container(arr)
let iterator = container.getIterator()
while(iterator.hasNext){
console.log(iterator.next())
}jQuery DEMO
functon each(data){
var $data= $(data)
$data.each(function (key,p){
console.log(key,p)
})
}
//测试代码
each(arr)
each(nodeList)
each($p)ES6中的for of用的就是Iterator