3

这是什么意思?:

 (function($){

  })(jQuery);

以及使用它的理由是什么?谢谢。

4

5 回答 5

2

您正在使用函数在 javascript 中创建新范围(因为 {} 不会创建新范围)。然后您立即调用此函数并JQuery从外部范围捕获并使其作为变量在内部可用$

于 2013-08-10T11:34:35.280 回答
2

这是一个自执行闭包(自执行函数)。

在这里,您将 jQuery 传递给这个自执行函数,该函数将 jQuery 映射到美元符号。因此,它不能在其执行范围内被另一个库覆盖。

在编写新插件时,您需要编写这样的语法,因为您更喜欢将代码封装在单独的命名空间中

于 2013-08-10T11:52:19.560 回答
1

它是一个自执行匿名函数。此函数在加载时自行执行。

它的意思是 :

// but execute itself
function ($) {
   // to-do
}
于 2013-08-10T11:36:26.277 回答
1
(function($) {
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);
// other code using $ as an alias to the other library

恢复 $ 别名,然后创建并执行一个函数,以在函数范围内将 $ 作为 jQuery 别名提供。在函数内部,原始 $ 对象不可用。这适用于大多数不依赖任何其他库的插件。

于 2013-08-10T11:33:50.027 回答
0

传递$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>

阅读避免冲突其他库

于 2013-08-10T11:43:38.317 回答