this jsfiddle を確認し、コンソールを確認します。 $$
定義されていません。次に、完全に新しいウィンドウを開き、$$
コンソールに。セレクターに一致するすべてのdom要素の(jqueryのような)配列を取得するための関数を定義します。
> $$
bound: function () {
return document.querySelectorAll.apply(document, arguments)
}
これは開発ツールによって追加されますか? FirefoxでFirebugを使用する場合にも存在します。ツール自体が内部的に使用していますか?
Firebug Lite はこれを次のように定義します:
this.$$=function(selector,doc){if(doc||!FBL.Firebug.chrome){return FBL.Firebug.Selector(selector,doc)
( ソースを参照 。)
Firebugのフルバージョン defines this as
this.$$ = function(selector)
{
return FBL.getElementsBySelector(baseWindow.document, selector);
};
これは実際には documented であり、はい、内部的にも使用されます。
だから私はGoogle Chromeが同様のことをしていると思います.
まず、ジーゼマーの答えのすべてが正しいです。
さまざまなブラウザのdevtoolsコンソールで利用できる機能がいくつかあります。総称して、メソッドは コマンドラインAPI (オフライン)( 新しいリンク )として知られており、すべてFirebugに由来しています。現在、Firebugは(ほとんど)正しく機能しているため、ブラウザー間で同等の処理が行われています。
しかし、Firebugが作成されたとき(2006年)、大流行したJavaScriptライブラリはPrototype.jsでした。 _$
_は、いくつかのgetElementById()
構文シュガーのためにPrototypeによって取得されました。これは、要素を取得するための最も迅速な方法であり、当時最も一般的な要素取得手法だったためです。それはそのような時間の節約でした、人々は $砂糖のためだけのライブラリ全体 を使用しました。
2006年の初めに、jQueryはデビューし、CSSセレクターに基づいて要素を選択するために$()
を使用しました。私の古い CSSセレクターエンジンタイムラインポスト が示すように、プロトタイプは4日後をフォローしましたが、_$
_は既にライブラリで取得され、$$()
に移動しました。これは現在bling-bling関数として知られています。
そのため、FirebugはPrototypeのAPIを活用していたため、2006年もその役割を果たしていました。今では、jQueryとwindow.$ = document.querySelectorAll.bind(document)
のようなjQueryのエイリアスの時代では、それはかなり逆になっています。興味深いことに、Operaが革命を起こしたDragonflyのブラウザ開発ツールである場合、querySelectorAll
エイリアスとして_$
_を選択しました。もっと感覚。
ここで、DevToolsの_$$
_の「ソース」について質問し、その履歴を説明しました。おっと!なぜコンソールで利用できるのか... Command Line API (off-line)( new link )メソッドはすべて、コンソールのコンテキスト内でのみ利用できます、便利なメソッドと同じです。
copy()
は私のお気に入りの1つです。私はそれとその他をこの パワーユーザー向けのJavaScriptコンソール ビデオでカバーします。