3

クイックショット、

jQuery では、$("#doesNotExist")「オブジェクト [ ]」を返します。

JavaScriptでは、

  • (function(){return new Object;}).call();「オブジェクト{}」を返します。
  • (function(){return Array;}).call();「Array()」を返し、
  • (function(){$n=[];return $n;}).call();「[ ]」のみを返し、「オブジェクト [ ]」も返しません。

(注[] vs {}、Firebug によると、最新バージョン)。

何を検索すればよいかわかりませんが、その違いとJavaScriptで同等の結果を得る方法について疑問に思っています。前もって感謝します。

4

2 に答える 2

2

$("#doesNotExist")と同じように、空のjQuery オブジェクト$()を返します。

jQuery オブジェクトは配列のような構造を持っているため、Firebug の表現は次のとおりObject[]です。配列のようなオブジェクトを表します。


Firebug のソースを調べたところ、jQuery オブジェクトを配列のようなオブジェクトとして分類する方法がわかりました。指定されたオブジェクトにメソッド ( source ) が含まれている場合、isArrayLikeメソッドは戻ります。truesplice

したがって、デモ目的で、Firebug 12-13.0a の時点で、これは Firebug で配列のような表示を強制する 1 つの方法です。

console.log({
    0: 'hi',
    length: 1,
    splice: function(){} //makes Firebug display as array-like object
});

結果:

物体[

于 2013-09-06T16:02:56.247 に答える