9

可能重复:
获取页面中的所有(javascript)全局变量

我的应用程序在 javascript 中使用全局变量。有没有办法找出其中有多少?

谢谢唵

4

5 回答 5

13

我做了一个。

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 has been added在控制台中输出

于 2012-12-28T00:33:47.193 回答
8

在您的浏览器开发人员窗口 (F12) 中尝试此操作:

Object.keys(window).length
于 2012-12-28T00:34:48.993 回答
1

像这样遍历 window 元素:

for(var globe in window){
 console.log(globe);
}
于 2012-12-28T00:31:51.883 回答
0

当引入全局变量时,使用 linter 会警告您。您还可以比较window代码运行前后的项目。

于 2012-12-28T00:29:30.817 回答
-2

检查窗口对象,但在执行此操作之前,您需要知道所有全局变量名称,这是一个示例:

var myGlobalVars = {"global1":0, "global2":0};

function countGlobals() {
    var count = 0;
    for (myGlobalVar in myGlobalVars) {
        if (myGlobalVar in window) {
            count++;
        }
    }

    return count;
}

countGlobals();
于 2012-12-28T00:36:22.557 回答