博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可想实现一个自己的简单jQuery库?(五)
阅读量:6568 次
发布时间:2019-06-24

本文共 1157 字,大约阅读时间需要 3 分钟。

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地址:

可想造一个属于你自己的jQuery库?(四):

转载地址:http://mjvjo.baihongyu.com/

你可能感兴趣的文章
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>
Gradle -help
查看>>
/etc/security/limits.conf
查看>>
js 框架
查看>>
android 实现ListView中添加RaidoButton单选
查看>>
Oracle数据库:启动操作
查看>>
linux下的防火墙
查看>>
SNAT与DNAT
查看>>
Linux 修改密码“ Authentication token manipulation err”
查看>>
openstack
查看>>
Lync Server 2013 安装体验(一)
查看>>
EBB-24、DNS2
查看>>
css3做的nav
查看>>