jQuery实例为什么在firebug下表现出数组的特征

在firebug下面用console.debug($(‘a’))打印jQuery()返回值时,会发现控制台输出是一个数组,但我们知道jQuery()返回的确实一个对象,只不过这个对象有length属性和数字的下标,最重要的是还有一个splice方法。只要满足这三点,就会在控制台输出一个数组。自己建了个例子模拟一下。

function Foo() {
    return new Foo.prototype.init();
}
Foo.prototype = {
    init: function() {
        this.length = 1;
        this[0] = 'hello world';
        return this;
    },
    say: function() {
        alert('hi');
    },
    length: 0,
    splice: [].splice
}
Foo.prototype.init.prototype = Foo.prototype;

Foo();

PS: 如果想用firebug打印完整的jQuery对象,请用console.dir()。

jQuery实例为什么在firebug下表现出数组的特征》上有1条评论

  1. Pingback引用通告: » jQuery实例为什么在firebug下表现出数组的特征 » UED TEAM

发表评论