ホームページ >バックエンド開発 >PHPチュートリアル >人格崇拝 jQuery ソース コード分析メモ
jQuery の目的は、Write Less, Do More です。これは、YUI ほど煩わしい JavaScript 開発スタイルではなく、もちろん Dojo や YUI ほど大規模ではありません。これにより、JavaScript の日常的な開発作業、主に DOM 要素の操作 (Query という名前からわかるように) が大幅に簡素化されます。すべてのフロントエンド開発者が直面する必要があるもう 1 つの大きな課題は、ブラウザーの互換性です。 jQuery は、邪悪な IE6 から Firefox や Chrome などの最新のブラウザまで、すべての主要なブラウザのほとんどのバージョンと互換性があります。コア コードのごく一部を除いて、jQuery の残りの部分は緩い関数であり、拡張性が高くなります。 http://plugins.jquery.com には、必要なほぼすべての機能に対応する jQuery プラグインがあり、複数の jQuery プラグインがあります。
jQuery コードの先頭は License ステートメントです。 GPLv2 と MIT の二重協定を採用しています。そして、jQuery 宣言の下には、別のプロジェクト Sizzle の宣言があります。これは、jQuery の作者によるもう 1 つのオープン ソース プロジェクトであり、MIT、BSD、および GPL の下でリリースされています。これは独立したセレクター実装 (純粋な JavaScript CSS セレクター エンジン) であり、独立して使用できます。その圧縮バージョンはわずか 3KB 強で、最も効率的なセレクターの実装として知られています。 jQuery は、1.3 以降、元のセレクター実装の代わりに Sizzle を使用します。
JS コードには () と {} がたくさんあります。これを読み取るために Vim が使用されています。これは、% コマンドで一致する括弧をすぐに見つけることができるためです。
全体的なコード構造と変数
jQuery コード全体は匿名関数呼び出しです:
コードをコピー コードは次のとおりです:
(function (window, unknown) {
// ...
})( window);
コードをコピーします コードは次のとおりです:
(function ($) {
// $("...")... いつものように $ を使用します
})(jQuery);
コードをコピーします コードは次のとおりです:
var jQuery = (function () {
var jQuery = function(selector, context) {
// 実際の初期化関数
return new jQuery.fn.init(selector, context, rootjQuery);
},
// たくさんの変数宣言
/ / fn は、jQuery プラグインの主要な関数実装ポイントであり、実際には JS プロトタイプです
jQuery.fn = jQuery.prototype = {
}; を拡張するために使用される関数です。オブジェクト。将来的には、jQuery へのメンバーの追加は、extend 関数
jQuery.extend = jQuery.fn.extend = function() {
}; を使用して行われるようになります。 ...
return jQuery;
})();
jQuery オブジェクトは、jQuery で直接実装されたいくつかのユーティリティ関数を除いて、すべて jQuery オブジェクトです。の extend メソッドを使用して jQuery オブジェクトに変換します。