2010-11-18 8 views
3

いくつかの開発者がJavaScriptファイルで作業として、それらの多くは、再び同じファイル名を書き終わって、再び重複するJavaScript名。彼らを持つことは悪いですか?

簡単な例ではgetCookie、機能のはsetcookieタイプにすることができます。

私たちはjavascriptファイルで集約を行っていますが、同じ機能を2回使用すると問題はありますか?

今物事が正常に動作しているが、私は

はあなたの助け

答えて

11

に感謝知りたいあなたが意図せずにグローバル名前空間に二回定義された機能を有する終わる場合は、[はい、確かに問題があるでしょう。最後に定義された関数は、前の関数を単純に上書きします。

この問題を解決するには、名前空間を使用することを検討してください。 JavaScriptの名前空間は、通常のオブジェクトとクロージャを使用することによって模倣し、しばしば自己呼び出し機能を使用して初期化されています

var myNamespace = (function() { 
    var _name = 'Bob'; 

    return { 
     somePublicMethod: function() { 
     return 'Hello, ' + _name; 
     } 
    }; 
})(); 

alert(myNamespace.somePublicMethod()); 
+2

待機中* *私はmyNamespaceを使用していました! ;) – Robusto

+0

@Robusto:lol! :) –

+0

@ダニエル素敵な答えは、非常にありがとう、私はそれをクリアしました。 – kobe

5

それは1つだけすることができ、任意のグローバルシンボル、のために種類のようハイランダー —です!

+0

Highlander参照のUpvoted。 – Zach

+0

私はZachと+1に同意します:) – vol7ron

0

名前空間は回答の一部であり、他の部分は重複コードではありません。

関数または変数の名前はその目的を記述する必要があるため、同じ名前の2つの関数は同じ関数でなければなりません!もちろん、これを完全に行うことはできません。そのため、我々は名前空間を持っています。

関連する問題