这是什么意思?:
(function($){
})(jQuery);
以及使用它的理由是什么?谢谢。
您正在使用函数在 javascript 中创建新范围(因为 {} 不会创建新范围)。然后您立即调用此函数并JQuery
从外部范围捕获并使其作为变量在内部可用$
这是一个自执行闭包(自执行函数)。
在这里,您将 jQuery 传递给这个自执行函数,该函数将 jQuery 映射到美元符号。因此,它不能在其执行范围内被另一个库覆盖。
在编写新插件时,您需要编写这样的语法,因为您更喜欢将代码封装在单独的命名空间中
它是一个自执行匿名函数。此函数在加载时自行执行。
它的意思是 :
// but execute itself
function ($) {
// to-do
}
(function($) {
$(function() {
// more code using $ as alias to jQuery
});
})(jQuery);
// other code using $ as an alias to the other library
恢复 $ 别名,然后创建并执行一个函数,以在函数范围内将 $ 作为 jQuery 别名提供。在函数内部,原始 $ 对象不可用。这适用于大多数不依赖任何其他库的插件。
传递$
以function
防止其他libraries
类似的冲突,
<!-- Using the $ inside an immediately-invoked function expression. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
(function( $ ) {
// Your jQuery code here, using the $
})( jQuery );
//Passing jQuery from here prevents $ variable which is also used by prototype
</script>
阅读避免冲突其他库