例如,
$(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
答案 0 :(得分:3)
看一下jQuery source。 $(document)
创建文档元素的克隆jQuery对象,然后生成并返回array-like object。
jQuery工厂函数$()返回一个有很多的jQuery对象 数组的属性(长度,[]数组访问运算符, 等),但与阵列不完全相同,缺少一些 数组的内置方法(如.pop()和.reverse())。
答案 1 :(得分:0)
数组(如[]
)也是JavaScript中的对象。在JS中,大多数都是一个对象,例如函数,数组,文字对象,正则表达式......要真正知道你正在处理的是一个数组,你可以这样做:
Object.prototype.toString.apply(myarray) === '[object Array]'