-1

いくつかの日付ピッカーを設定する必要がありdateFormatます。

を定義する最良の方法は何dateFormatですか?

次のような単純なメソッドを定義する

function dateFormat() {
    return 'yy-mm-dd';
} 

またはグローバル変数のような

dateFormat = 'yy-mm-dd'

?

4

1 に答える 1

1

わかりました、あなたのコメントによると:

@MarkusHofmann、返信ありがとうございます。jquery でグローバル変数をいつ使用するか、例があれば教えてください。

… jQueryでのグローバル変数の使用に関する情報を探していました。

ここで、調べたことをまとめます。この回答の最後にソースがあります。

どうぞ:

通常、グローバル変数は省略して定義var します(質問で行ったように)

dateFormat = 'yy-mm-dd';

しかし!!!省略varすると、暗黙的なグローバルが生成されます。これは悪いことであり、strict モードではエラーが発生します。

ただし、製品コードでグローバル変数を生成する必要がある場合(これは避けるべきです)、常に明示的に宣言します。

window.dateFormat = 'yy-mm-dd';

 
上記のアプローチを使用して、window / jQuery オブジェクトの名前空間内にグローバル変数を作成できます。

ウィンドウ オブジェクト:

window.myNameSpace = {
    dateFormat = 'yy-mm-dd',
    ...
};

jQuery オブジェクト:

$.myNameSpace = {
    dateFormat = 'yy-mm-dd',
    ...
};

ただし、名前空間の命名には注意してください。プラグインなどから別の同等の名前空間がある場合、名前の競合が発生する可能性があります。グローバルを単一のグローバル名前空間内にカプセル化することをお勧めします。これにより、jQuery から独立し、名前空間が乱雑にならなくなります。

グローバルを単一のグローバル名前空間内にカプセル化します。

var MyNameSpace = {}; // The global object container
MyNameSpace.dateFormat = 'yy-mm-dd';

Closureを使用してグローバルまたはプライベート メンバー変数を定義することもできます。

この長い話を短くすると、 globalsを避けるのがベスト プラクティスです。

 

ソース:

  1. https://stackoverflow.com/a/3352033/2493918
  2. https://stackoverflow.com/a/2895772/2493918
  3. グローバル変数をきれいに扱うには?
  4. http://www.javascripttoolbox.com/bestpractices/#namespace
  5. http://jibbering.com/faq/notes/closures/
  6. http://www.crockford.com/javascript/private.html
  7. https://stackoverflow.com/search?q=namespace+javascript+global

編集:

私の答えにもう 1 つ追加したいのですが、jQuery のプラグインを作成するときは、すべてのコードをすぐに呼び出される関数式(IIFE)内に配置し、関数jQueryを渡し、パラメーターに$という名前を付けます。このクロージャーにより、独自のプライベート変数を持つことができ、jQuery$エイリアスを保護できます。

(function( $ ){

    ...YOUR CODE HERE...

})( jQuery );

Ben Alman のサイトに、IIFE に関する詳細情報を提供する優れた投稿があります。

StackOverflow でここで読む価値のある素晴らしい答えを含む IIFE 関連の質問もあります:
Using 'window', 'document' and 'undefined' as argument in anonymous function that wraps a jQuery plugin

于 2013-08-13T13:10:42.450 に答える