如何查找javascript中使用的全局变量
可能重复:如何查找javascript中使用的全局变量,javascript,Javascript,可能重复: 我的应用程序在javascript中使用全局变量。有没有办法找到他们中有多少人 谢谢 Om使用过梁会在引入全局时警告您。您还可以在代码运行之前和之后比较窗口的项目 像这样迭代窗口元素: for(var globe in window){ console.log(globe); } 我做了一个 var GlobalTester = (function(){ var fields = {}; var before = function(w){ for
我的应用程序在javascript中使用全局变量。有没有办法找到他们中有多少人 谢谢
Om使用过梁会在引入全局时警告您。您还可以在代码运行之前和之后比较
窗口的项目 像这样迭代窗口元素:
for(var globe in window){
console.log(globe);
}
我做了一个
var GlobalTester = (function(){
var fields = {};
var before = function(w){
for(var field in w){
fields[field] = true;
};
};
var after = function(w){
for(var field in w){
if(!fields[field]){
console.log(field + " has been added");
}
};
};
return {before: before, after:after};
}());
GlobalTester.before(window);
// Run your code here
window.blar = "sdfg";
GlobalTester.after(window);
这将输出blar已添加到控制台中
在浏览器开发者窗口(F12)中尝试此操作:
检查窗口对象,但在执行此操作之前,您需要知道所有全局变量名,下面是一个示例:
var myGlobalVars = {"global1":0, "global2":0};
function countGlobals() {
var count = 0;
for (myGlobalVar in myGlobalVars) {
if (myGlobalVar in window) {
count++;
}
}
return count;
}
countGlobals();
最简单的方法是检查窗口
对象。出于好奇,为什么要设置全局变量?我正试图想出一个必要的例子,但我想不出一个。@Thomas:当我们最初设计应用程序时,我们使用了它,现在我正试图将其删除并使其本地化。@Ohm-你能澄清一下吗。。。您想获取所有全局变量的列表,还是仅获取您正在创建的变量的列表?我把这个问题理解为“我如何判断哪些全局变量是我的,这样我就可以摆脱它们”,在这种情况下,我认为mods过早地关闭了这个问题。+1因为这将返回此窗口的所有属性的计数,而不仅仅是OP感兴趣的属性。关闭,所以我无法回答;另外,如果您添加的任何全局变量可能不可枚举,请查看使用。啊-不用担心。我可能误解了这个问题。我以为他想知道有多少全局变量。不知道他的代码使用了多少。考虑到这一点,我理解您的担忧,因为您可以只计算globalVars变量中的属性数。但正如我解释的这个问题,属性可能存在也可能不存在,所以这个答案是合理的。如果OP知道其所有全局变量的名称,为什么他们会问这个问题?如果全局变量在运行时的某个未知点分配,但变量的名称在“编译”时已知。
var myGlobalVars = {"global1":0, "global2":0};
function countGlobals() {
var count = 0;
for (myGlobalVar in myGlobalVars) {
if (myGlobalVar in window) {
count++;
}
}
return count;
}
countGlobals();