码迷,mamicode.com
首页 > Web开发 > 详细

深入理解jQuery中的each方法

时间:2018-02-04 15:42:44      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:github   特点   默认   理解   isa   bsp   foreach   就是   原型   

写在前面

我们先回顾一下数组中的forEach方法吧。在数组的实例上有个forEach方法供所有实例使用,forEach里面接收一个回调函数,而且回调函数默认接收三个参数:当前项,索引,数组 。forEach循环有个特点,就是无论如何都会把数据遍历完成。

 

each方法

 

each方法不仅是jQuery的静态方法而且还是jQuery元素原型中的方法

 

静态方法通过:$.each(数组或对象,函数) 这样的形式执行,注意:数组和对象都可以作为参数哦

原型方法通过:$(匹配元素集合) .each(函数) 这样的形式执行

 

其实不管是静态方法还是原型中的方法,都是执行同一个each方法,我们来看看源代码吧

 1 each: function( obj, callback ) {
 2         var length, i = 0;
 3 
 4         if ( isArrayLike( obj ) ) {
 5             length = obj.length;
 6             for ( ; i < length; i++ ) {
 7                 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
 8                     break;
 9                 }
10             }
11         } else {
12             for ( i in obj ) {
13                 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
14                     break;
15                 }
16             }
17         }
18 
19         return obj;
20     }

上面是jQuery的静态方法,下面是原型上的方法

each: function( callback ) {
        return jQuery.each( this, callback );
    },

原型上的each方法只是把this当做参数传入了,也就是参数obj,each方法中的还通过is ArrayLike来判断是不是类数组,然后在循环,如果是对象也做了处理,要注意的是回调函数,如果回调函数返回false值那么each方法将会停止遍历,这是一个很大的区别。

 

如果的jQuery的原型不理解可以先阅读

/blog

 

深入理解jQuery中的each方法

标签:github   特点   默认   理解   isa   bsp   foreach   就是   原型   

原文地址:https://www.cnblogs.com/wuxianqiang/p/8412888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!