(function($){}(jQuery))这句话是啥意思呀啊?

来源:2-4 用css3实现淡入淡出效果(1)

lcyjerry

2019-11-14 18:05:34

为啥参数可以传jQuery?

写回答

5回答

好帮手慕码

2019-11-15

同学你好,这使用$和jquery好处是:1 避免全局依赖,形成一个封闭的自执行函数;2 避免第三方破坏;3 兼容jquery操作符"$"和jquery。这总写法常用于插件的开发。如下例子:

http://img.mukewang.com/climg/5dce047c094e559804070121.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

1
hcyjerry
h 避免全局依赖 和 第三方破坏是啥意思 能结合例子解释下吗
h019-11-16
共2条回复

好帮手慕星星

2019-11-17

同学你好,问题解答如下:

1、因为你使用的是jquery插件,所以传入的实际参数只能是jQuery,不可以是其他的。

2、传入jQuery实参是插件规定的;形参为$是大家常用的,算是形成的一种规范,也可以换成其他的。

3、不传参数直接使用匿名函数是可以的,例如:

http://img.mukewang.com/climg/5dd0a9d70933577f08040191.jpghttp://img.mukewang.com/climg/5dd0a9df0973141006080037.jpg

但是通常使用会传入参数,如果项目中还有引入其他插件的话,与$可能会有冲突。其实是为了保护$符号,不管外界是否引入了另外有干扰$的库,都不会干扰匿名函数中$就是jQuery的事实,因为他是作为参数被传进去的。

建议:同学不需要深究原理,插件就是为了让我们使用方便才封装的,所以我们知道怎么使用就可以,不需要深入研究这个插件是怎么封装的。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

好帮手慕码

2019-11-16

同学你好,1.一般来说实际开发的时候很少有人会使用$作为参数的(可以算是约定俗成)。

2.你传递其他参数也是可以的,并不限制。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0
hcyjerry
h 不穿任何参数 的自执行函数不可以吗?
h019-11-16
共2条回复

好帮手慕码

2019-11-16

同学你好,针对你的问题如下解答:

  1. 如果不传参数,就是一个自执行函数,无需调用,直接执行:

    http://img.mukewang.com/climg/5dcf5d3f091f8da303770091.jpg

    效果:

    http://img.mukewang.com/climg/5dcf5d450930be1c01170066.jpg

  2. 避免第三方破坏的意思:首先要知道,(function($){...}) (jQuery)多用于插件编写。其次,大多数开发者使用了插件之后,自己也会写插件之外的功能,为了避免传递参数的冲突,所以插件中的参数定义为$。

  3. 避免全局依赖的话,就如第二条回复中的例子:

    http://img.mukewang.com/climg/5dcf5ded09ff4c6e03640118.jpg

    图中的arg1是局部的参数,在函数内可以使用,在函数外就无访问。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0
hcyjerry
h 为了避免传递参数的冲突 为什么传的$就不会冲突呢?我传其他不行吗?那如果我其他也传$呢?
h019-11-16
共1条回复

好帮手慕码

2019-11-14

同学你好,这其实是一个匿名函数。例如:

(function(arg){...})(param)。

这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数,至于用不用参数,得结合你的上下文和需求。

而(function($){...}) (jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,$表示的是可以是jQuery,也可以是其他对象,这要根据上下文而定。$仅仅是一个符号,只不过被赋予特殊的含义而已。

如果我的回答帮帮到了你,欢迎采纳,祝学习愉快~

0
hcyjerry
h 那这样传参的用处是什么呢 ?如果要使用的话该怎么用呢?
h019-11-14
共3条回复

0 学习 · 14456 问题

查看课程