jqueryのソースのバージョン2.0.3、ダウンロード:http://www.jq22.com/jquery/jquery-2.0.3.zip
第二のクラスの味として学習このjqueryのソースjQueryのソースコード解析の研究ノート。
クロージャとは何ですか?
クロージャは、独立した範囲を確立することで、アクセス内部変数やオブジェクトに外部関数を許可します。
クロージャの役割
クロージャは汚染されていないグローバルスコープを確保するために、スコープの乱れを作成するために閉じることができず、プライベート、パブリック変数やメソッドの機能を定義することができます。
クロージャ変数は、ライフサイクルの閉鎖のライフサイクルが終了して保存するために呼び出されます。
クロージャーの例
擬似コード:
//创建一个闭包,外部无法直接访问内部变量和方法函数。
var count = (function(){
var number = 0;
//指定外部可以访问的方法函数
return function(){
//被调用的变量不会被内存回收销毁,生命周期和闭包生命周期一致
return number++;
}
})();
count();//1
count();//2
count();//3
jqueryの閉鎖
//因为js是基于原型的语言,所以在传参中直接传入window对象可以减少js在原型链中查找window对象的时间
//在js中undefined既不是保留字也不是关键字,所以为了防止外部定义了个名字叫undefined的变量干扰到jquery的代码,所以jquery将undefined作为传参传入。
(function( window, undefined ) {
function jQuery(){
}
//其他代码片段
if ( typeof window === "object" && typeof window.document === "object" ) {
//将jQuery实例化方法挂载到window对象下面,那么就可以在外部访问到jQuery对象了
window.jQuery = window.$ = jQuery;
}
})(window);
console.log(window.jQuery);
console.log(window.$);
console.log($);
これらの3つの方法はjQueryのメソッドを呼び出すことができます