YUICompressor を使用して jQuery プラグインを圧縮しています。最初は「関数ごとに var ステートメントを 1 つと return を 1 つだけにしてください」という警告がたくさん出たので、次の例のようにすべての宣言を一番上に置きました。
$.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>");
}
}