グローバルスコープを '汚染する'ため、名前空間を使用すべきではないと言われました。私は何が選択肢だろうか?JavaScriptで名前空間が悪いと思われるのはなぜですか?
ユーティリティ関数や定数を定義したいとします。ウェブサイトの場合、簡単な方法は名前空間でそれらを定義することです。グローバルスコープへのダメージはオブジェクト1つに限定されます。
名前空間は悪い習慣であれば、質問のカップルが頭に浮かぶ:
- なぜこの悪い習慣はありますか?
- この宣言の対象は何ですか(ウェブアプリケーション/動的ウェブサイト/静的ウェブサイトなど)ですか?
- 代替手段はありますか?
この質問はa post on the benefits of using extend.jsに開始議論の結果です。
そして、私はいつもネームスペースはグローバルスコープを汚染していないと思っていました。(彼らは**良い**です)。 –
ええ、誰かがこれを後方に持っています。 –
@FelixKling名前空間は、依然としてグローバルスコープを汚染します。 JavaScriptではグローバルトークンは必要ありません。それらを使用する人は誰でもそれを間違ってやっています。 – Raynos