ホームページ >バックエンド開発 >PHPチュートリアル >人格崇拝 jQuery ソース コード分析メモ

人格崇拝 jQuery ソース コード分析メモ

WBOY
WBOYオリジナル
2016-07-29 08:45:191015ブラウズ

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);


これは、グローバル オブジェクトの汚染を回避するためと、実行コンテキストを便利に管理するためです。この手法は JS コードでよく見られ、jQuery コードでも一般的です。たとえば、jQuery が他の JS ライブラリとともに使用されている場合、$ 記号が使用されている可能性があります。 $ 記号を引き続き使用するには:

コードをコピーします コードは次のとおりです:


(function ($) {
// $("...")... いつものように $ を使用します
})(jQuery);


ここに実際の jQuery オブジェクトを渡します。
実際の実装部分に入りましょう。最初は、jQuery オブジェクトの宣言である $ です。2 つの最も基本的なメンバーもリストされています:

コードをコピーします コードは次のとおりです:


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 オブジェクトに変換します。

以上、人格崇拝に関する jQuery ソースコード解析メモを紹介しました。人格崇拝の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。