jquery中each实现的困惑
时间:2011-12-01
来源:互联网
在jquery中,$.each()在使用时的用法为:
JScript code
也就是说callback的参数第一个是key,第二个是value,但是在jquery的源码中,我发现:
jQuery.extend中的each实现为:
callback.call( object[ i ], i, object[ i++ ] )
整体代码如下所示,求助:
JScript code
JScript code
$.each(map, function(key, value) { alert(key + ': ' + value); });
也就是说callback的参数第一个是key,第二个是value,但是在jquery的源码中,我发现:
jQuery.extend中的each实现为:
callback.call( object[ i ], i, object[ i++ ] )
整体代码如下所示,求助:
JScript code
each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; },
作者: Stargaga 发布时间: 2011-12-01
你要先搞明白.call的用法
第一个参数是调用方法的对象,所以你的callback里可以用this
第二个参数i才是你callback的第一个参数,也就是索引
第三个参数就不用说了
第一个参数是调用方法的对象,所以你的callback里可以用this
第二个参数i才是你callback的第一个参数,也就是索引
第三个参数就不用说了
作者: ifandui 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28