可想实现一个自己的简单jQuery库?(五)
Lesson-4
这个版本我们要增加一个用的非常多的方法!
那就是each!
我们知道each不仅能遍历数组,还能遍历对象.
首先我们需要一个对数组进行验证的方法
function isArray(obj) {return Array.isArray(obj);
}
接着就是我们的重头戏
Kodo.each = function(obj,callback) {var len = obj.length,constru = obj.constructor,i = 0;if(constru === window.f) {for (; i < len; i++) {var val = callback.call(obj[i],i,obj[i]);if(val === false) break;}} else if (isArray(obj)) {for (; i < len; i++) {var val = callback.call(obj[i],i,obj[i]);if(val === false) break;}} else {for( i in obj ) {var val = callback.call(obj[i],i,obj[i]);if(val === false) break;}}};
因为我们还可能遍历Kodo数组对象
如
f("div").each(function(index,item) {})
所以还需要一个判断 是否是Kodo数组对象
if(constru === window.f) {for (; i < len; i++) {var val = callback.call(obj[i],i,obj[i]);if(val === false) break;}
}
在这应该强调下call的用法,还是很多人不知道call何时使用.
在我们的callback里 第一个参数是下标,第二个参数是当前的对象,然后this还要指向他自己
所以 callback.call(obj[i],i,obj[i]);
就是这样写 第一个参数是改变this指向,第二个参数是下标,第三个是自己本身
很简单不是吗?
既然你都看到这里了,还不给我一个star?!
github地址: https://github.com/MeCKodo/forchange/tree/master/lesson-4
可想造一个属于你自己的jQuery库?(四):http://segmentfault.com/a/1190000004001281
可想实现一个自己的简单jQuery库?(五)相关推荐
- 欢迎大家讨论:只想要一个最简单的XXX系统,功能最简化的XXX系统
我们国人总有一种思想,能简化的简化,但是往往我们把真正应该简单化的东西反而没简单化,例如我们的人际关系.一些比较传统的封建思想,往往这些最应该简化的东西是更加搞得深入.复杂. 其实很多东西是简化不来的 ...
- php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...
基于jquery实现的文字向上跑动类似跑马灯的效果 想实现一个类似跑马灯的效果,发现跑马灯有空格.效果也不美观,于是用jquery写了个 页面代码 恭喜187****5204获得1000RBM 恭喜1 ...
- body区域怎么传一个数组_自己轻松写一个jQuery库
jQuery是现在最流行的JavaScript工具库. 据统计,目前全世界57.3%的网站使用它.也就是说,10个网站里面,有6个使用jQuery.如果只考察使用工具库的网站,这个比例就会上升到惊人的 ...
- 【折腾的一个小玩意】基于jquery+百度音乐的音乐外链小工具
[折腾的一个小玩意]基于jquery+百度音乐的音乐外链小工具 现在百度mp3好像关掉了,虾米的加载又慢,于是我就根据以前发过的百度音乐的代码弄了这个东西.代码托管到百度BAE的,应用还在审核中,不知 ...
- linux美化桌面,Linux_设置动态壁纸来美化Ubuntu桌面,我们知道你想拥有一个有格调 - phpStudy...
设置动态壁纸来美化Ubuntu桌面 我们知道你想拥有一个有格调的ubuntu桌面来炫耀一下 :) 在linxu上费一点点劲搭建一个出色的工作环境是很简单的.今天,我们(重新)着重来探讨长驻你脑海中那些 ...
- jQuery是一个非常优秀的js库
若有侵权随时可以联系作者删除 jQuery学习目录 一.前言 二.学习目标 三.优点分析 四.jQuery基础知识 (一)jQuery(load和read的区别) (二)jQuery选择器 (1).j ...
- javascript之jQuery:一个轻松编写js的库
以下内容来自廖雪峰的js教程,整理了下作为笔记 1.简介 JavaScript世界中使用最广泛的一个库,我把它理解为轻松编写js的一个库 jQuery能帮我们干这些事情: 消除浏览器差异:你不需要自己 ...
- U盘linux随身带,Linux_5分钟打造U盘启动的Ubuntu,想拥有一个可以随身携带的操 - phpStudy...
5分钟打造U盘启动的Ubuntu 想拥有一个可以随身携带的操作系统?你可以考虑将它安装到U盘驱动器上.很早开始在USB磁盘上运行Linux发行版已经成为可能的,只是这个制作过程嘛,有点麻烦.为什么?因 ...
- [转载]婚姻不只是娶一个女人那么简单
原文地址:婚姻不只是娶一个女人那么简单作者:一代天骄668 婚姻不只是娶一个女人那么简单 笔者认为:"婚姻不只是嫁一个男人那么简单,也不只是娶一个女人那么简单". 其实婚姻有三重境 ...
最新文章
- feign 回退原因_0503-Hystrix保护应用-feign的hystrix支持
- JAVA中File类的使用
- 计算机学院张旭豪,饿了么收购百度外卖,可以看出张旭豪硕士研究生是有多厉害!...
- 2011-05-20
- php class使用方法,php的类使用方法问题
- QQ网页登陆密码加密方式(农场、空间、WebQQ等通用)
- 总结之前有道笔记的内容--对于Touch 的不同讲解
- indesign教程,了解图层
- linux(Centos系统)部署项目(vue+nginx+tomcat)
- java calendar数组_Java Calendar Date使用总结
- 宝马无法gps定位_宝马5系GPS定位不准确怎么回事
- 大数据项目之深圳地铁大数据客流分析系统
- IE6不兼问题之Internet Explorer 无法打开 internet站点
- annotate 函数的用法
- 笔记:毫米波雷达传感器,优势、应用和产业规模
- matlab之simulink仿真入门
- 软件设计师中级复习小总结
- Excel 删除重复数据只保留一条的绿色工具,excel删除重复的行
- 力扣(LeetCode)刷题笔记
- ISP 图像信号处理器数字IP实现
热门文章
- 邬贺铨院士:十问边缘计算!
- 谷歌无人车十年记:理想背后的骨感现实 | 厚势汽车
- 联通、华为《5G室内覆盖》白皮书!
- 微观世界探索者:15家值得关注的纳米技术公司
- 雷军狂撒 20 亿 ,给小米、金山员工豪派“大红包”,网友:又是别人家的公司!...
- “一线城市,年薪30万+,我却裸辞回老家”一个前程序员的 10 年职业思考
- 列表渲染 wx:key 的作用、条件渲染 wx:if 与 hidden 的区别
- 【其他】GIT常用原生命令
- Thinkpad W520 完美安装Ubuntu14.04LTS
- 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】