jquery each()源代码

2019-12-24,,,

复制代码 代码如下:
// args is for internal usage only
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 ( var value = object[0];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
}
return object;
},

分析:jquery文档说 each(callback)作用是以每一个匹配的元素作为上下文来执行一个函数。就是用each来遍历数组,来执行同一个方法
这个方法的实现最关键的是:call与apply的用法:call(apply)就是将函数的对象的从初始的上下文改为thisObj指向的对象,
就是说用thisObj来代替原来的对象来执行方法:call与apply的第一个参数为this指向的对象,而后面的参数都下传给函数的,
call传给函数的参数用逗号分隔而apply则为一个数组。
//1.callback.apply( object[ name ], args )
//2.callback.call( object[ name ], name, object[ name ] )

您可能感兴趣的文章:

  • 关于jQuery中的each方法(jQuery到底干了什么)
  • jquery退出each循环的写法
  • jquery each的几种常用的使用方法示例
  • jQuery的each终止或跳过示例代码
  • Jquery each方法跳出循环,并获取返回值(实例讲解)
  • 解析prototype,JQuery中跳出each循环的方法
  • 关于jquery中全局函数each使用介绍
  • JQuery each打印JS对象的方法
  • jquery $.each 和for怎么跳出循环终止本次循环
  • jquery $.each()使用探讨
  • jquery foreach使用示例
  • jquery $.each() 使用小探
  • JQuery for与each性能比较分析
  • JQuery each()函数如何优化循环DOM结构的性能
  • jQuery.each()用法分享
  • jquery里的each使用方法详解
  • 浅析jQuery的链式调用之each函数
  • jquery的each方法使用示例分享

《jquery each()源代码.doc》

下载本文的Word格式文档,以方便收藏与打印。