如何理解这个jquery函数

时间:2013-08-10 11:31:42

标签: javascript jquery

这是什么意思?:

 (function($){

  })(jQuery);

使用它的原因是什么? 感谢。

5 个答案:

答案 0 :(得分:2)

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

在内部使用

答案 1 :(得分:2)

这是一个自我执行闭包(自执行功能)。

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

您需要在编写新插件时编写此类语法,因为您希望将代码封装在单独的命名空间中

答案 2 :(得分:1)

(function($) {
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);
// other code using $ as an alias to the other library
  

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

答案 3 :(得分:1)

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

这意味着:

// but execute itself
function ($) {
   // to-do
}

答案 4 :(得分: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>

阅读avoid-conflicts-other-libraries