javascriptforEach函数实现代码
代码 实现 函数
2023-06-13 09:14:15 时间
functionforEach(object,block,context,fn){
if(object==null)return;
if(!fn){
if(typeofobject=="function"&&object.call){
//遍历普通对象
fn=Function;
}elseif(typeofobject.forEach=="function"&&object.forEach!=arguments.callee){
//如果目标已经实现了forEach方法,则使用它自己的forEach方法(如标准游览器的Array对象)
object.forEach(block,context);
return;
}elseif(typeofobject.length=="number"){
//如果是类数组对象或IE的数组对象
_Array_forEach(object,block,context);
return;
}
}
_Function_forEach(fn||Object,object,block,context);
};
function_Array_forEach(array,block,context){
if(array==null)return;
vari=0,length=array.length;
if(typeofarray=="string"){
for(;i<length;i++){
block.call(context,array.charAt(i),i,array);
}
}else{
for(;i<length;i++){
block.call(context,array[i],i,array);
}
}
};
_Function_forEach=function(fn,object,block,context){
//这里的fn恒为Function
for(varkeyinobject){
//只遍历本地属性
if(object.hasOwnProperty(key)){
//相当于block(object[key],key)
block.call(context,object[key],key,object);
}
}
};
原作者的一些例子(我翻墙扒过来了!):
functionprint(el,index){
alert(index+":"+el)
}
forEach([1,2,3],print);
forEach({a:"aa",b:"bb",c:"cc"},print);
forEach("司徒正美",print);
forEach(document.styleSheets,function(el){
if(el.href)alert(el.href)
});
functionPerson(name,age){
this.name=name||"";
this.age=age||0;
};
Person.prototype=newPerson;
varfred=newPerson("Fred",38);
fred.language="English";//极晚绑定
fred.wife="Wilma";//极晚绑定
forEach(fred,print)
相关文章
- 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )
- 掌握Oracle函数:深度查看代码实现(查看oracle函数代码)
- MySQL神器一行代码实现多行插入(mysql一行插入多行)
- JavaScript实现Sleep函数的代码
- javascripttrim去空格函数实现代码
- jquerytext,radio,checkbox,select操作实现代码
- js实现的日期操作类DateTime函数代码
- jQueryAJAX调用WebService实现代码
- jQuery的实现原理的模拟代码-4重要的扩展函数extend
- ASP使用Filter函数来检索数组的实现代码
- js实现addClass,removeClass,hasClass的函数代码
- php的chr和ord函数实现字符加减乘除运算实现代码
- php模板函数正则实现代码
- jQuery淡出一个图像到另一个图像的实现代码
- js实现的切换面板实例代码
- 将word转化为swf如同百度文库般阅读实现思路及代码
- JS实现图片横向滚动效果示例代码
- C#函数式程序设计之用闭包封装数据的实现代码
- JS逆序遍历实现代码
- C#WinForm实现Win7Aero透明效果代码
- php实现的DateDiff和DateAdd时间函数代码分享