jQuery创建伪数组对象的原理

1.什么是伪数组

    1.1伪数组是一个非数组类型的对象.

    1.2有一个length属性,值为numder类型.

    1.3以下标的方式存储数据.

    代码如下:

        var obj = {

            0: 'abc',

            1: 'cba',

            length: 2

        };


2.创建伪数组对象的原理

jQuery创建伪数组对象的原理

    在jQuery中,$()是一个工厂函数,工厂函数内部return了一个构造函数init().使用控制台输出$()会得到一个对象,得到的对象我们都说是jQuery类型对象,其实它是init()类型对象.

    制台输出的$()对象是伪数组对象吗? -- 不是,$().length 为nudefined .

    jQuery创建伪数组对象的原理

调用的函数,最终都会new到init()里面,我们把它的内容进行包装.由于构造函数中this的指向是实例对象,当给this.length一个数值时,$()对象就是伪数组对象了.

jQuery创建伪数组对象的原理

jQuery内部也用了[].push这一点.