标签:
<!-- ———————————————— JS原型(prototype) ———————————————————— -->
//实现 array each(循环数组的每一项)
var arr=[1,3,4,2];
arr.forEach(function(item,index,array){
//alert(item);
});
var arr2=[1,3,23,[12,[13,[45]]]];
Array.prototype.each=function(fn){
//目的 遍历数组的每一项
try{
//计数器 记录当前遍历元素的位置
this.i||(this.i=0);
//判断什么时候进入
if(this.length>0&&fn.constructor==Function){
//遍历数组的每一项
while(this.i<this.length){
//获取数组的每一项
var e=this[this.i];
//判断元素存在并且是数组
if(e&&e.constructor==Array){
e.each(fn);
}else{
//使用绑定的方式
//fn.apply(e,[e]);
fn.call(e,e);
}
this.i++;
}
this.i=null;//释放内存
}
}catch(ex){
}
}
arr2.each(function(item){alert(item);});
标签:
原文地址:http://www.cnblogs.com/jalja/p/4412405.html