以下代码结构有何作用?
(function($){
// Some code
})(jQuery);
我遇到过这种结构here。
作为对自己的参考:
jQuery
与jQuery范围中的$
相同。除了jQuery之外的其他库通常也定义了字符$
。有人might want to use another js library next to jQuery(例如Mootools)。为了让他们一起工作,你应该取消定义或重新定义$
。
以下行在jQuery中取消定义$
:
jQuery.noConflict();
以下行在jQuery中将$
重新定义为$jq
:
var $js = jQuery.noConflict();
使用代码结构(function($){ // Some code })(jQuery);
时,即使有人在//Some code
未定义的范围内调用该代码,也可以保证jQuery代码$
正常工作。
另见Tats_innit的回答here。
答案 0 :(得分:3)
这是为了兼容性,以避免jQuery使用$
,并通过这样做,让其为其他框架释放。
此函数使用jQuery作为参数,因此在函数范围内$
将具有jQuery的方法,您可以通过$
(美元符号)调用它们。
Mootools和Prototype也使用美元符号。
答案 1 :(得分:0)
当您的页面加载到浏览器中时,它将运行一些功能。
希望你已提到 jQuery ,如果不是从这里开始How jQuery Works