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

关于jquery (function($){}) 和 $(function(){})?如下所示

关于jquery (function($){}) 和 $(function(){})?如下所示

慕丝7291255 2021-02-23 14:10:37
请问下(function($){}) 和$(function(){}) 和$(function($){}) 有什么区别 谢谢
查看完整描述

2 回答

?
白板的微信

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

一、先看

jQuery(function(){
});
全写为
jQuery(document).ready(function(){

});

意义为在DOM加载完毕后执行了ready()方法。
二、再看

(function(){

})(jQuery);
其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。

三、总结

jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。

查看完整回答
反对 回复 2021-03-20
?
慕森卡

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

1
首先(function(){})()这种写法
是创建了一个匿名的方法并立即执行(function(){})这个是匿名方法后面的括号就是立即调用了这个方法)。
这样做可以创建一个作用域以保证内部变量与外部变量不发生冲突,比如$
jQuery
等jquery内部定义的变量。
2
(function($){})(jQuery)
这个写法主要的作用还是保证jquery不与其他类库或变量有冲突
首先是要保证jQuery这个变量名与外部没有冲突(jquery内部$与jQuery是同一个东西
有两个名字的原因就是怕$与其他变量名有冲突二jQuery与其他变量冲突的几率非常小)并传入匿名对象,匿名对象给参数起名叫做$(其实和jquery内部是一样的)
然后你就可以自由的在(function($){})(jQuery)里写你的插件而不需要考虑与外界变量是否存在冲突



查看完整回答
反对 回复 2021-03-20
  • 2 回答
  • 0 关注
  • 324 浏览

添加回答

举报

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