我将我的插件提交到AMO目录,编辑器返回如下:
There are still a number of variables being leaked to the global scope,
probably because you're using them undeclared like...
他没有提到所有问题变量,无论如何都知道哪些是在全局范围内/正在泄露?
我有一大堆变量,要花很长时间来检查每一个变量,以确保它们被正确地声明为"var"。
请帮忙!
谢谢!
如果您试图跟踪由于遗漏var
而隐式声明为全局的变量,则可以运行strict mode
中的代码。这将给你一个ReferenceError
,如果你试图使用没有属性声明的变量。
(function() {
"use strict"; // <-- this runs code inside this function in strict mode
// your code...
test = 'tester'; // gives a ReferenceError
})();
您需要在支持的浏览器中运行它,如Firefox 4或更高版本。"use strict";
声明式将确保函数内的任何代码都将使用严格模式的规则进行计算。
除了正确使用var关键字之外,您应该确保所有的javascript都包含在这样的函数中:
(function(){
//Your code
}());
这将使您的所有变量保持在一个立即调用的函数的作用域中。
使用firebug的firefox,在适当的地方添加一个断点并观察 window对象,全局作用域中的所有变量都是它的成员