javascript - 不同的对象类型

标签 javascript jquery oop object

快速拍摄,

在 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
});

结果:

Object[ "hi" ]

关于javascript - 不同的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661618/

相关文章:

javascript - 如何在浏览器的调试器本身中调试动态加载的 JavaScript(使用 jQuery)?

javascript - SOAP 请求的问题。 'Access-Control-Allow-Origin'

附加为类属性时,Javascript 字符串按空格分隔

php - $.getJSON 在某些浏览器中的问题

Java大类组织

JavaScript OnClick 选择标记在移动浏览器上不起作用

javascript - 使用 Javascript/Jquery 添加点

javascript - 将数组名称作为字符串传递,jquery

oop - 一个对象拒绝它自己是正确的吗?

php - 将函数的结果分配给 PHP 类中的变量?面向对象的怪异