jQuery如何返回一个类数组对象,js让一个对象的行为像一个数组一样
2015-12-08 10:36
661 查看
jQuery在使用$或者jQuery这个关键字的方法时,会在其框架内部动态的创建一个构造函数,下面这个函数:
然后控制台输出jQuery的对象是这样的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/09/0f21673c9d353837688e1f24b2f5e3e6)
是一个类似数组的对象,而不是一个我们通常认为的{}。
那么jQuery是在哪里修改使得这个返回的实例像数组一样的呢,看下面这段代码,截自jQuery-1.7.1:
原理的话,本人水平有限,说不太清,但是下面可以举个例子:
上面是一个对象,我们打印下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/09/4e064095d0b5a77bb5e57d05fe76f513)
是一个标准的Object,那么怎样修改成一个类数组呢,借助jQuery的方法:
输出如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/09/3b96ee096ba4dae623a35e70f778739d)
但是此时并没有push,sort方法,只需要添加即可
....... jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } .......
然后控制台输出jQuery的对象是这样的:
是一个类似数组的对象,而不是一个我们通常认为的{}。
那么jQuery是在哪里修改使得这个返回的实例像数组一样的呢,看下面这段代码,截自jQuery-1.7.1:
// For internal use only.--仅限内部使用 // Behaves like an Array's method, not like a jQuery method.--让它想一个数组一样拥有数组的方法,但不是一个jQuery的方法 length:0, push: push, sort: [].sort, splice: [].splice
原理的话,本人水平有限,说不太清,但是下面可以举个例子:
var Colors = { a:'red', b:'blue', c:'black' }
上面是一个对象,我们打印下:
是一个标准的Object,那么怎样修改成一个类数组呢,借助jQuery的方法:
var Colors = { a:'red', b:'blue', c:'black', length:0, splice: [].splice } console.log(Colors)
输出如下
但是此时并没有push,sort方法,只需要添加即可
push = Array.prototype.push; var Colors = { a:'red', b:'blue', c:'black', length:0, push: push, sort: [].sort, splice: [].splice } console.log(Colors)
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Python动态类型的学习---引用的理解
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- JavaScript 各种遍历方式详解
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 土人系列AS入门教程 -- 对象篇
- 文件遍历排序函数
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- 基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码