jQuery(function ($) { ... }($)); 的目的
Purpose of jQuery(function ($) { ... }($));
我在我学习的各种项目中看到了这种模式,有时在使用 jQuery 时,开发人员将他们的代码包装在这个函数中:
jQuery(function ($) {
'use strict';
/* Application code */
}($)); /* End jQuery */
我试图在 jQuery 文档中查找解释,但并没有找到太多。您能否向我解释一下为什么以及何时应该使用它?对于这样的事情是否有更好的做法/替代方案。
它非常类似于:
$(document).ready(function(){});
阅读本文,您会有所了解...
$
是 jQuery 的别名,有时它会与其他 javascript 库发生冲突,例如在内部也使用 $
符号的 mootools。
因此,您刚刚在方法范围内为您的代码设置了 $
jQuery 别名:
jQuery(function ($) {
'use strict';
/* Application code */
}($));
另一种类似的方法是使用这样的范围:
(function($){
$(function(){ // <----here you have just secured the $ for your code.
'use strict';
/* Application code */
});
})(jQuery);
没有外包装,它是一个插件定义,见:Basic plugin creation。
我在我学习的各种项目中看到了这种模式,有时在使用 jQuery 时,开发人员将他们的代码包装在这个函数中:
jQuery(function ($) {
'use strict';
/* Application code */
}($)); /* End jQuery */
我试图在 jQuery 文档中查找解释,但并没有找到太多。您能否向我解释一下为什么以及何时应该使用它?对于这样的事情是否有更好的做法/替代方案。
它非常类似于:
$(document).ready(function(){});
阅读本文,您会有所了解...
$
是 jQuery 的别名,有时它会与其他 javascript 库发生冲突,例如在内部也使用 $
符号的 mootools。
因此,您刚刚在方法范围内为您的代码设置了 $
jQuery 别名:
jQuery(function ($) {
'use strict';
/* Application code */
}($));
另一种类似的方法是使用这样的范围:
(function($){
$(function(){ // <----here you have just secured the $ for your code.
'use strict';
/* Application code */
});
})(jQuery);
没有外包装,它是一个插件定义,见:Basic plugin creation。