Jquery插件:如何用不同的语法声明函数

时间:2016-10-20 08:32:28

标签: jquery jquery-plugins

我是jquery的新手。当我浏览示例jquery插件时,我注意到各种函数声明语法。这些如下:

(function($){
  function function_name1()
  {
      //function body 
  }

  var _function_name2  = function(options){
      //function body 
  };

  $.fn.function_name3 = { 
             function_name4:function(){ //function body },
             //function body 
  };

  $.fn.function_name5 = function(){
             //function body 
  }
}(jQuery));

我只知道function_name5语法。所以请帮助我找出其他人之间的区别。谢谢。

1 个答案:

答案 0 :(得分:1)

以下实际上是一种函数语法

function function_name1()
  {
      //function body 
  }

为了避免上述函数属于globe范围,我们使用如下的立即函数调用来包装它,这意味着函数本身将立即被调用。

(function($){

   ....

}(jQuery));

下面一个基本上是一个函数变量,称为匿名函数。

var _function_name2  = function(options){
      //function body 
  };

原因是因为当函数内部发生错误时,堆栈跟踪不会显示变量名称,而是显示为匿名函数。但是您可以使用以下语法获取相同的函数名称。

var _function_name2  = function _function_name2(options){
      //function body 
  };

下面的实际上并不是直接调用的函数,而是使用任何dom元素或元素数组调用它们,函数内的$(this)将返回相同的dom元素。这些通常称为jquery插件。

$.fn.function_name5 = function(){
             //function body 
  }
希望你理解。