1. 程式人生 > 其它 >jquery閉包應用

jquery閉包應用

//jquery閉包應用 letparams1=typeofwindow!==undefined?window:this; letparams2=function(window,noGlobal){ //瀏覽器環境window->windownoGlobal->undetined //Node環境window->thisnoGlobal->true //...jquery核心程式碼 varJquery=function(selector,context){ //... }
//為了防止暴露到全域性的jQuery和$和全域性下現有的內容衝突,可以提供$等使用權的轉讓 var_Jquery=windwo.jQuery, _$=window.$;
jQuery.noConflict=functionnoConflict(deep){ if(window.$===Jquery){ window.$=_$ } if(deep&&window.jQuery===jQuery){ window.jQuery=_Jquery }
returnjQuery }
//瀏覽器環境下基於window.xxx=xxx的方式,把jquery暴露到全域性 //jquery()或者$()都是把內部私有的Jquery執行 if(typeofnoGlobal==="undefined"){ window.Jquery=window.$=jQuery } returnJquery } (function(global,factory){ //瀏覽器環境:global->windowNode環境global->當前module //factory回撥函式 "usestrict"; if(typeofmodule==="object"&&typeofmodule.exports==="object"){ //支援CommonJs模組規範的環境:Node環境 //params2(this,true) module.exports=global.document?factory(global,true): function(w){ if(!w.document){ thrownewError("Jqueryrequiresawindowwhithadocument") } returnfactory(w) }; }else{ //瀏覽器環境(不支援持CommonJs模組規範) //params2(window) factory(global) }
})(params1,params2) 我是Eric,手機號是13522679763