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()。

关于 小寒

这人很懒。
此条目发表在 JavaScript 分类目录,贴了 , 标签。将固定链接加入收藏夹。

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

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

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>