jQuery创建伪数组对象的原理
1.什么是伪数组
1.1伪数组是一个非数组类型的对象.
1.2有一个length属性,值为numder类型.
1.3以下标的方式存储数据.
代码如下:
var obj = {
0: 'abc',
1: 'cba',
length: 2
};
2.创建伪数组对象的原理
在jQuery中,$()是一个工厂函数,工厂函数内部return了一个构造函数init().使用控制台输出$()会得到一个对象,得到的对象我们都说是jQuery类型对象,其实它是init()类型对象.
制台输出的$()对象是伪数组对象吗? -- 不是,$().length 为nudefined .
调用的函数,最终都会new到init()里面,我们把它的内容进行包装.由于构造函数中this的指向是实例对象,当给this.length一个数值时,$()对象就是伪数组对象了.
jQuery内部也用了[].push这一点.