javascript 设计模式之迭代器模式
迭代器模式是指提供一种方法访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示.迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素.
jquery 中的迭代器
迭代器模式无非就是循环访问聚合对象中的各个元素.我们来看一个最常见的迭代器,jquery 中的$.each 函数
$.each([1,2,3],function(i,n){ console.log('当下是第'+i+'个元素'); console.log('当前值为'+n); });
现在我们来自己实现一个 each 函数,each 函数接收 2 个参数,第一个为被循环的数组,第二个为循环中的每一步后被处罚的回调函数
var each = function( ary,callback ){ for(var i=0,l=ary.length;i<l;i++){ callback.call(ary[i],i,ary[i]);//把下标和元素当做参数传给 callback 函数 } } each([{name:"a"},{name:"b"},{name:"c"}],function(i,n){ console.log([i,n]); console.log(this); });