(function($){}(jQuery))这句话是啥意思呀啊?
来源:2-4 用css3实现淡入淡出效果(1)
lcyjerry
2019-11-14 18:05:34
为啥参数可以传jQuery?
5回答
好帮手慕码
2019-11-15
同学你好,这使用$和jquery好处是:1 避免全局依赖,形成一个封闭的自执行函数;2 避免第三方破坏;3 兼容jquery操作符"$"和jquery。这总写法常用于插件的开发。如下例子:
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕星星
2019-11-17
同学你好,问题解答如下:
1、因为你使用的是jquery插件,所以传入的实际参数只能是jQuery,不可以是其他的。
2、传入jQuery实参是插件规定的;形参为$是大家常用的,算是形成的一种规范,也可以换成其他的。
3、不传参数直接使用匿名函数是可以的,例如:
但是通常使用会传入参数,如果项目中还有引入其他插件的话,与$可能会有冲突。其实是为了保护$符号,不管外界是否引入了另外有干扰$的库,都不会干扰匿名函数中$就是jQuery的事实,因为他是作为参数被传进去的。
建议:同学不需要深究原理,插件就是为了让我们使用方便才封装的,所以我们知道怎么使用就可以,不需要深入研究这个插件是怎么封装的。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
好帮手慕码
2019-11-16
同学你好,1.一般来说实际开发的时候很少有人会使用$作为参数的(可以算是约定俗成)。
2.你传递其他参数也是可以的,并不限制。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕码
2019-11-16
同学你好,针对你的问题如下解答:
如果不传参数,就是一个自执行函数,无需调用,直接执行:
效果:
避免第三方破坏的意思:首先要知道,(function($){...}) (jQuery)多用于插件编写。其次,大多数开发者使用了插件之后,自己也会写插件之外的功能,为了避免传递参数的冲突,所以插件中的参数定义为$。
避免全局依赖的话,就如第二条回复中的例子:
图中的arg1是局部的参数,在函数内可以使用,在函数外就无访问。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕码
2019-11-14
同学你好,这其实是一个匿名函数。例如:
(function(arg){...})(param)。
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数,至于用不用参数,得结合你的上下文和需求。
而(function($){...}) (jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,$表示的是可以是jQuery,也可以是其他对象,这要根据上下文而定。$仅仅是一个符号,只不过被赋予特殊的含义而已。
如果我的回答帮帮到了你,欢迎采纳,祝学习愉快~
相似问题