簡體   English   中英

jQuery的返回值是Array,但構造函數是Object。 怎么樣?

[英]jQuery's return value is Array, but constructor is Object. how?

例如,

$(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

看一下jQuery 源代碼 $(document)創建文檔元素的克隆jQuery對象,然后生成並返回類似數組的對象

jQuery工廠函數$()返回一個jQuery對象,該對象具有數組的許多屬性(長度,[]數組訪問運算符等),但與數組不完全相同,缺少一些數組的內置方法(如.pop()和.reverse())。

[]的數組也是JavaScript中的對象。 在JS中,大多數都是一個對象,例如函數,數組,文字對象,正則表達式......要真正知道你正在處理的是一個數組,你可以這樣做:

Object.prototype.toString.apply(myarray) === '[object Array]'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM