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库?(五)相关推荐

  1. 欢迎大家讨论:只想要一个最简单的XXX系统,功能最简化的XXX系统

    我们国人总有一种思想,能简化的简化,但是往往我们把真正应该简单化的东西反而没简单化,例如我们的人际关系.一些比较传统的封建思想,往往这些最应该简化的东西是更加搞得深入.复杂. 其实很多东西是简化不来的 ...

  2. php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...

    基于jquery实现的文字向上跑动类似跑马灯的效果 想实现一个类似跑马灯的效果,发现跑马灯有空格.效果也不美观,于是用jquery写了个 页面代码 恭喜187****5204获得1000RBM 恭喜1 ...

  3. body区域怎么传一个数组_自己轻松写一个jQuery库

    jQuery是现在最流行的JavaScript工具库. 据统计,目前全世界57.3%的网站使用它.也就是说,10个网站里面,有6个使用jQuery.如果只考察使用工具库的网站,这个比例就会上升到惊人的 ...

  4. 【折腾的一个小玩意】基于jquery+百度音乐的音乐外链小工具

    [折腾的一个小玩意]基于jquery+百度音乐的音乐外链小工具 现在百度mp3好像关掉了,虾米的加载又慢,于是我就根据以前发过的百度音乐的代码弄了这个东西.代码托管到百度BAE的,应用还在审核中,不知 ...

  5. linux美化桌面,Linux_设置动态壁纸来美化Ubuntu桌面,我们知道你想拥有一个有格调 - phpStudy...

    设置动态壁纸来美化Ubuntu桌面 我们知道你想拥有一个有格调的ubuntu桌面来炫耀一下 :) 在linxu上费一点点劲搭建一个出色的工作环境是很简单的.今天,我们(重新)着重来探讨长驻你脑海中那些 ...

  6. jQuery是一个非常优秀的js库

    若有侵权随时可以联系作者删除 jQuery学习目录 一.前言 二.学习目标 三.优点分析 四.jQuery基础知识 (一)jQuery(load和read的区别) (二)jQuery选择器 (1).j ...

  7. javascript之jQuery:一个轻松编写js的库

    以下内容来自廖雪峰的js教程,整理了下作为笔记 1.简介 JavaScript世界中使用最广泛的一个库,我把它理解为轻松编写js的一个库 jQuery能帮我们干这些事情: 消除浏览器差异:你不需要自己 ...

  8. U盘linux随身带,Linux_5分钟打造U盘启动的Ubuntu,想拥有一个可以随身携带的操 - phpStudy...

    5分钟打造U盘启动的Ubuntu 想拥有一个可以随身携带的操作系统?你可以考虑将它安装到U盘驱动器上.很早开始在USB磁盘上运行Linux发行版已经成为可能的,只是这个制作过程嘛,有点麻烦.为什么?因 ...

  9. [转载]婚姻不只是娶一个女人那么简单

    原文地址:婚姻不只是娶一个女人那么简单作者:一代天骄668 婚姻不只是娶一个女人那么简单 笔者认为:"婚姻不只是嫁一个男人那么简单,也不只是娶一个女人那么简单". 其实婚姻有三重境 ...

最新文章

  1. feign 回退原因_0503-Hystrix保护应用-feign的hystrix支持
  2. JAVA中File类的使用
  3. 计算机学院张旭豪,饿了么收购百度外卖,可以看出张旭豪硕士研究生是有多厉害!...
  4. 2011-05-20
  5. php class使用方法,php的类使用方法问题
  6. QQ网页登陆密码加密方式(农场、空间、WebQQ等通用)
  7. 总结之前有道笔记的内容--对于Touch 的不同讲解
  8. indesign教程,了解图层
  9. linux(Centos系统)部署项目(vue+nginx+tomcat)
  10. java calendar数组_Java Calendar Date使用总结
  11. 宝马无法gps定位_宝马5系GPS定位不准确怎么回事
  12. 大数据项目之深圳地铁大数据客流分析系统
  13. IE6不兼问题之Internet Explorer 无法打开 internet站点
  14. annotate 函数的用法
  15. 笔记:毫米波雷达传感器,优势、应用和产业规模
  16. matlab之simulink仿真入门
  17. 软件设计师中级复习小总结
  18. Excel 删除重复数据只保留一条的绿色工具,excel删除重复的行
  19. 力扣(LeetCode)刷题笔记
  20. ISP 图像信号处理器数字IP实现

热门文章

  1. 邬贺铨院士:十问边缘计算!
  2. 谷歌无人车十年记:理想背后的骨感现实 | 厚势汽车
  3. 联通、华为《5G室内覆盖》白皮书!
  4. 微观世界探索者:15家值得关注的纳米技术公司
  5. 雷军狂撒 20 亿 ,给小米、金山员工豪派“大红包”,网友:又是别人家的公司!...
  6. “一线城市,年薪30万+,我却裸辞回老家”一个前程序员的 10 年职业思考
  7. 列表渲染 wx:key 的作用、条件渲染 wx:if 与 hidden 的区别
  8. 【其他】GIT常用原生命令
  9. Thinkpad W520 完美安装Ubuntu14.04LTS
  10. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】