我们有一个非常大的JavaScript应用程序,经过几个月的编码后,不可避免地出现了几个范围滑点,其中定义变量而不使用var
以下方式的关键字:
function() { x = 5; ... }
代替:
function() { var x = 5; ... }
这发生在某个地方 - 我们不确定在哪里 - 并且搜索有问题的变量名称很困难,因为它是我们源代码中出现1000次的常用词.
有没有办法让Firebug在首先创建给定全局变量的行上中断?为了澄清,我想在window.x
切换undefined
到定义值的时刻和break语句中断.
我已经尝试创建一个监视表达式,并希望我可以把它变成一个断点,但我似乎无法在没有某种上下文或范围的情况下创建监视表达式.
如果使用Firebug无法做到这一点,我会对能在Firefox中完成此任务的任何事情感兴趣.
提供了一些东西
您知道变量的名称
在全局范围(在函数外部声明)中没有具有该名称的变量,但仅在内部函数中.
有函数调用声明变量.
这个小脚本可以解决这个问题:
在分配之前,您将获得执行代码的跟踪.
它可能无法报告某些情况,因此请查看JSLint.将所有JS文件加载到那里并将它们拖放.