Javascript:变量被泄露到全局作用域(Firefox插件)



我将我的插件提交到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对象,全局作用域中的所有变量都是它的成员

相关内容

  • 没有找到相关文章

最新更新