为了账号安全,请及时绑定邮箱和手机立即绑定

jquery插件源码问题

jquery插件源码问题

潇潇雨雨 2019-05-25 13:34:24
谁能解释一下这段代码的具体作用。我大体知道是解决变量冲突,namespase相关的东西(function(factory){if(typeofdefine==='function'&&define.amd){define(['jquery'],factory);}else{factory(window.jQuery||window.Zepto||window.$);};}(function($){//具体代码}
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

判断js文件中的$的变量名冲突,检查工厂函数jQuery是否存在,如果不存在,则$优先表示jQuery的$,其次是zepto,然后是window的全局变量这个一般会显示在封装好的插件中,因为引入插件,难免有时会有jQuery的$冲突,这个时候如果冲突了,插件中的$就替换成jQuery
                            
查看完整回答
反对 回复 2019-05-25
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

if(typeofdefine==='function'&&define.amd){
define(['jquery'],factory);
}
判断是否是通过AMD加载方式加载的jquery,如果是AMD,则传入插件方法作为callback,接受AMD加载的jquery对象
else{
factory(window.jQuery||window.Zepto||window.$);
};
如果没有通过AMD加载,则直接从全局依次寻找jQuery、Zepto、$,然后传入插件方法全局的这个对象
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 377 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信