我正在使用 YUICompressor 来压缩我的 jQuery 插件。最初我收到很多警告“尝试每个函数只有一个 var 语句和一个返回”,所以我将所有声明放在顶部,如下例所示:
$.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>");
}
}