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

jquery (function(a){})(jQuery);

jquery (function(a){})(jQuery);

桃花长相依 2019-03-03 04:04:48
jquery (function(a){})(jQuery);
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

(function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下看。
这里实际上是匿名函数 function(arg){...} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery.
等同于 var fn = function($){....}; fn(jQuery);
(funtion(){})();立即执行函数;相当于先申明一个函数,声明完后直接调用;
用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。

查看完整回答
反对 回复 2019-03-11
?
皈依舞

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

这是一个匿名函数被执行了,他的实参是jQuery对象。
相当于:
function test(a){}
test(jQuery);
上面这种写法,一般是为了保护本地变量不被外部变量污染。写自己的js库的时候,不妨也这样写:
(function(w){
//这里面就可以写的你js公共库了
var my_func = function(){}

w.my_func = my_func;//要把函数引用赋给顶级对象window,不然外部调用不了了。

})(window);

查看完整回答
反对 回复 2019-03-11
  • 2 回答
  • 0 关注
  • 1091 浏览

添加回答

举报

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