2016-10-20 4 views
0

で関数を宣言するためにどのように、私は関数宣言syntax.Thoseの多様である気づい以下の通りjQueryプラグイン:私はサンプルjQueryのプラグインを経由jquery.Whenに非常に新しいです異なる構文

(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

'_function_name3'は、関数を含む' function_name4'というプロパティを保持するオブジェクトであるため、誤った名前です。詳細については、[このリンク](http://davidbcalhoun.com/2011/different-ways-of-defining-functions-in-javascript-this-is-madness/)は役に立ちます –

答えて

1

次は、上記の機能を回避するために

function function_name1() 
    { 
     //function body 
    } 

は、機能自体がすぐに呼び出されることを意味する以下のように我々はすぐに関数呼び出しと同じようにラップされている世界の範囲内に収まる、実際に関数の構文ですそれだけで。

以下は、基本的には関数変数であり、匿名関数と呼ばれます。

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

ための理由は、エラーが関数の内部で発生したときにスタックトレースは、変数名が表示されません、代わりに、それは匿名の機能が表示されますです。しかし、以下の構文で同じ関数名を得ることができます。 1以下

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

ザは実際に直接代わりに、それらは同一のDOM要素(複数可)を返すであろう任意のDOM要素または要素のアレイと関数内$(この)で呼び出される呼び出される関数ではありません。これらは通常、jqueryプラグインと呼ばれます。

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

ご理解いただきありがとうございます。

+0

:あなたの説明はすばらしいです: - ) – CelinVeronicca

+0

@CelinVeroniccaありがとう:-) –

関連する問題