5

例えば、

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

値が配列の場合、配列コンストラクターである必要があります。

オブジェクトのような配列ではありません。なぜなら、オブジェクトのような配列には、[]のような配列プロパティがないからです。

どうしてそれができますか?

追加:可能であれば、簡単なサンプルコードを示してください。お気に入り

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

2 に答える 2

3

jQueryソースを見てください。 $(document)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 に答える