3

快速拍摄,

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

在 JavaScript 中,

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

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

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

4

2 回答 2

2

$("#doesNotExist")返回一个空的jQuery 对象,方式与$()之前相同。

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


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

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

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

结果是:

目的[

于 2013-09-06T16:02:56.247 回答
1

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

于 2013-09-06T15:49:40.030 回答