zepto 研究

本文探讨了jQuery选择器返回的特殊对象与数组的区别,并介绍了如何通过splice方法使其看起来像数组,以欺骗某些浏览器的开发者工具。主要内容包括jQuery对象的特点、如何模仿数组行为以及其在开发过程中的应用。

在有zepto的页面上,在控制台上输入 $() 。
在chrom下,显示为$() //[] 。而在 FireFox下, 显示为$() //Object { length: 0, selector: "" }

刚开始很疑惑后来,百度了一下 (百度地址

1、jquery选择器$('selector')返回的不是数组,而是封装好的jquery对象。但这个对象有一个特别的地方,就是查询到的节点被以下标为属性,添加到了jquery对象上,所以它看起来像数组,因为它存在一些属性是数字;

及 (百度地址2

要想让自己的Object也有这样的特点,就要继承数组,不过firebug很好欺骗,搞一个假数组就能蒙混过关了。 那怎么骗到它呢? 就是splice方法了,很关键,firebug觉得有splice就是数组,呵呵! 把任何function赋值给原型方法splice都行!
**(这段话有问题,我测试了 不是 firebug,而是 chrome )**

$.fn = {
    length: 0,
    // Because a collection acts like an array
    // copy over these useful array functions.
    forEach: emptyArray.forEach,
    push: emptyArray.push,
    splice: emptyArray.splice,
    indexOf: emptyArray.indexOf
  }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值