jquery闭包应用
// jquery闭包应用
let params1 = typeof window !== undefined ? window : this;
let params2 = function(window,noGlobal){
// 浏览器环境 window-> window noGlobal->undetined
// Node环境 window-> this noGlobal-> true
// ...jquery 核心代码
var Jquery = function(selector,context){
// ...
}
// 为了防止暴露到 全局的jQuery 和 $ 和全局下现有的 内容冲突 , 可以提供 $ 等使用权的转让
var _Jquery = windwo.jQuery,
_$ = window.$;
jQuery.noConflict = function noConflict(deep){
if(window.$ === Jquery){
window.$ = _$
}
if(deep && window.jQuery === jQuery){
window.jQuery = _Jquery
}
return jQuery
}
// 浏览器环境下 基于 window.xxx = xxx 的方式, 把jquery 暴露到全局
// jquery() 或者 $() 都是把 内部私有的 Jquery 执行
if(typeof noGlobal === "undefined"){
window.Jquery = window.$ = jQuery
}
return Jquery
}
(function(global,factory){
// 浏览器环境: global -> window Node环境 global -> 当前module
// factory 回调函数
"use strict";
if(typeof module === "object" && typeof module.exports === "object"){
// 支持 CommonJs 模块规范的环境: Node 环境
// params2(this, true)
module.exports= global.document ? factory(global,true) :
function(w){
if(!w.document){
throw new Error("Jquery requires a window whith a document")
}
return factory(w)
};
}else{
// 浏览器环境 (不支持 持 CommonJs 模块规范)
// params2(window)
factory(global)
}
})(params1,params2)
我是Eric,手机号是13522679763

浙公网安备 33010602011771号