jquery each()源代码


Posted in Javascript onFebruary 14, 2011
// 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 相关文章推荐
js将iframe中控件的值传到主页面控件中的实现方法
Mar 11 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
js 判断控件获得焦点的示例代码
Mar 04 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
javascript将url解析为json格式的两种方法
Aug 18 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
vue中eventbus被多次触发以及踩过的坑
Dec 02 Javascript
Angular网络请求的封装方法
May 22 Javascript
在微信小程序中渲染HTML内容的方法示例
Sep 28 Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 Javascript
jquery trim() 功能源代码
Feb 14 #Javascript
jquery uaMatch源代码
Feb 14 #Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 #Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 #Javascript
javascript中删除指定数组中指定的元素的代码
Feb 12 #Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 #Javascript
编写可维护面向对象的JavaScript代码[翻译]
Feb 12 #Javascript
You might like
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
jQuery实现动态加载瀑布流
2020/09/01 jQuery
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
python生成IP段的方法
2015/07/07 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
谈谈python垃圾回收机制
2020/09/27 Python
用python批量移动文件
2021/01/14 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
什么是就业协议书
2014/04/17 职场文书
党建工作先进材料
2014/05/02 职场文书
成人成长感言如何写?
2019/08/16 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书