快速拍摄,
在 jQuery 中,$("#doesNotExist")
返回“Object [ ]”。
在 JavaScript 中,
(function(){return new Object;}).call();
返回“Object{ }”。(function(){return Array;}).call();
返回“Array()”和(function(){$n=[];return $n;}).call();
仅返回“[ ]”而不返回“Object [ ]”。
(注意 []
与 {}
,根据 Firebug,最新版本)。
我不确定要搜索什么,但我想知道其中的区别以及如何在 JavaScript 中获得相同的结果。 提前致谢。
最佳答案
$("#doesNotExist")
返回一个空的 jQuery object ,与 $()
的方式相同。
jQuery 对象具有类似数组的结构,因此 Firebug 表示:Object[]
表示类似数组的对象。
我查阅了 Firebug 源代码,发现它是如何将 jQuery 对象分类为类数组对象的。当给定对象包含 splice
方法 ( source ) 时,isArrayLike
方法返回 true
。
因此,出于演示目的,从 Firebug 12-13.0a 开始,这是一种在 Firebug 上强制显示类似数组的方法:
console.log({
0: 'hi',
length: 1,
splice: function(){} //makes Firebug display as array-like object
});
结果:
关于javascript - 不同的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661618/