快速拍摄,
在jQuery中,$("#doesNotExist")
返回“Object []”。
,
(function(){return new Object;}).call();
返回“对象{}”。(function(){return Array;}).call();
返回“Array()”和(function(){$n=[];return $n;}).call();
只返回“[]”而不是“Object []”。(注意[]
vs {}
,根据Firebug,最新版本。)
我不确定要搜索什么,但我想知道差异以及如何在JavaScript中获得相同的结果。 提前谢谢。
答案 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
});
结果:
答案 1 :(得分:1)
[]
表示数组,而{}
表示单个对象。