私はjQueryプラグインを圧縮するためにYUICompressorを使用しています。当初、私は警告の多くは、「一つだけvarステートメントおよび機能ごとに1つのリターンを持っているようにしてください」なったので、私は次の例のように上部にあるすべての宣言を置く:大きなプラグインでYUICompressorの警告を避けながら、Javascriptでグローバルな名前空間の汚染を防ぐにはどうしたらいいですか?
$.fn.myWidget = function() {
var function1, function2, function3
function1 = function() {
// Do stuff
};
function2 = function() {
// Do stuff
};
// This will be a global function
function3 = function() {
// Do stuff
};
};
これはコードになりメンテナンスの悪夢。
私はfunction4を追加しますが、変数宣言を追加するのを忘れてしまいました。トップを追加すると、実際にグローバルウィンドウ名前空間に変数を作成しています。 プラグインがページで複数回使用されると、グローバル関数が上書きされます。
は今、私はグローバル名前空間の汚染をチェックするために、次のスクリプトを実行していますが、誰もがよりよい解決策私はマップ形式で関数を宣言することを好む
for (var f in window) {
if (window.hasOwnProperty(f)) {
$("#debug").append(f + " " + " Type: " + typeof window[f] + "<br>");
}
}