jquery each()源代码_Javascript教程-查字典教程网
jquery each()源代码
jquery each()源代码
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下://argsisforinternalusageonlyeach:function(object,callback,arg...

复制代码 代码如下:

// 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 ] )

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类