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

为何很多jquery插件都要这么写

为何很多jquery插件都要这么写

慕妹3146593 2019-04-14 09:51:27
如题,我发现很多插件都是如下风格的代码(function($){$.fn.xxxx=....})(jQuery);为什么不直接$.fn.xxxx=....
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

主要原因是你不能保证$就是jQuery对象,因为$有可能被其他库占用,或被重新定义,或者执行了jQuery.noConfict()等。但是jQuery这个对象肯定是存在的。所以保险起见,要加一个匿名的闭包将jQuery对象作为参数传进去,以确保$===jQuery。
不光是写插件的时候要这么做,在写其他代码时,也很有必要这样。
                            
查看完整回答
反对 回复 2019-04-14
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

(function($){
$.fn.xxxx=....
})(jQuery);
这叫做匿名函数自调用,这样做的好处是避免将变量暴露到全局变量中去。前面说到冲突的问题,在实际的项目中,大部分主要还是jq为主,应该很少碰到jq和其他框架共存的项目,除了prototype也会用到$,其他的框架没使用这个变量。
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号