jquery插件源码问题

谁能解释一下这段代码的具体作用。我大体知道是解决变量冲突,namespase相关的东西
(function(factory){
if(typeofdefine==='function'&&define.amd){
define(['jquery'],factory);
}else{
factory(window.jQuery||window.Zepto||window.$);
};
}(function($){
//具体代码
}
潇潇雨雨
浏览 378回答 2
2回答

江户川乱折腾

判断js文件中的$的变量名冲突,检查工厂函数jQuery是否存在,如果不存在,则$优先表示jQuery的$,其次是zepto,然后是window的全局变量这个一般会显示在封装好的插件中,因为引入插件,难免有时会有jQuery的$冲突,这个时候如果冲突了,插件中的$就替换成jQuery

犯罪嫌疑人X

if(typeofdefine==='function'&&define.amd){define(['jquery'],factory);}判断是否是通过AMD加载方式加载的jquery,如果是AMD,则传入插件方法作为callback,接受AMD加载的jquery对象else{factory(window.jQuery||window.Zepto||window.$);};如果没有通过AMD加载,则直接从全局依次寻找jQuery、Zepto、$,然后传入插件方法全局的这个对象
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript