不同的对象类型

时间:2013-09-06 15:45:41

标签: javascript jquery oop object

快速拍摄,

在jQuery中,$("#doesNotExist")返回“Object []”。

在JavaScript中

  • (function(){return new Object;}).call();返回“对象{}”。
  • (function(){return Array;}).call();返回“Array()”和
  • (function(){$n=[];return $n;}).call();只返回“[]”而不是“Object []”。

(注意[] vs {},根据Firebug,最新版本。)

我不确定要搜索什么,但我想知道差异以及如何在JavaScript中获得相同的结果。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

$("#doesNotExist")返回空的jQuery object,与$()的方式相同。

jQuery对象具有类似于数组的结构,因此Firebug表示形式:Object[]表示类似于数组的对象。


我查找了Firebug源代码,发现它如何将jQuery对象分类为类似数组的对象。当给定对象包含isArrayLike方法(source)时,true方法会返回splice

因此,出于演示目的,从Firebug 12-13.0a开始,这是在Firebug上强制进行数组显示的一种方法:

console.log({
    0: 'hi',
    length: 1,
    splice: function(){} //makes Firebug display as array-like object
});

结果:

Object[ "hi" ]

答案 1 :(得分:1)

[]表示数组,而{}表示单个对象。