2 bogexueqianduan bogexueqianduan 于 2016.03.23 16:28 提问

jQuery插件开发:(function($){})(jQuery); 作用求解!!

开发jQuery插件的时候会用(function($){})(jQuery); 这个闭包函数来包裹,
因为这样写有以下三个好处:
1. 避免全局依赖
2. 避免第三方破坏
3. 兼容jQuery操作符$和jQuery

首先,上面那三个作用是什么意思?
另外,为什么用这个闭包函数包裹就可以达到上面的作用?

先谢过大家~~

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.23 16:41
已采纳

意思就是插件不会污染顶级对象和全局变量,因为两个插件,或者多个js库同时使用,万一有变量函数对象是同名的就会产生冲突。

showbo
showbo   Ds   Rxr 2016.03.23 18:12

第三个就是防止第三方重新定义过$导致$被污染而不是一定是指向jquery

caozhy
caozhy   Ds   Rxr 2016.03.23 16:42

闭包使得内部可以访问外面的变量对象,同时内部定义的又不会被外面看见。

bogexueqianduan
bogexueqianduan 因为即使不传参数也可以使用jQuery操作符,所以我不理解为什么要传jQuery对象作为参数进去
一年多之前 回复
bogexueqianduan
bogexueqianduan 谢谢懂了,前两个都懂了,那第三个要怎么解释呢?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!