5

例如,

$(document) // [ #document ] : document object in array
typeof $(document) // "object"
$(document).constructor // function Object() { [native code] } or function (a,b) { return some function; }

如果 value 是数组,它必须是 Array 构造函数。

它不是像对象一样的数组。因为像对象一样的数组只有数组属性,而不像 []。

怎么会这样?

补充:如果可以,请显示简单的示例代码。喜欢

a = ... 
console.log(a) // [ ... ]
console.log(a.constructor) // function Object or something
4

2 回答 2

3

看看 jQuery源代码$(document)创建文档元素的克隆 jQuery 对象,然后创建并返回一个类似数组的对象

jQuery 工厂函数 $() 返回一个 jQuery 对象,该对象具有数组的许多属性(长度、[] 数组访问运算符等),但与数组不完全相同,并且缺少数组的一些属性内置方法(例如 .pop() 和 .reverse())。

于 2012-07-09T06:07:45.913 回答
0

数组,如 中的[],也是 JavaScript 中的对象。在 JS 中,几乎所有东西都是一个对象,例如函数、数组、字面量对象、正则表达式……要真正知道你正在处理的是一个数组,你可以这样做:

Object.prototype.toString.apply(myarray) === '[object Array]'
于 2012-07-09T05:57:22.387 回答