gpt4 book ai didi

javascript - 定义全局变量 x 时让 Firebug 中断

转载 作者:可可西里 更新时间:2023-11-01 01:32:06 25 4
gpt4 key购买 nike

我们有一个非常大的 JavaScript 应用程序,经过几个月的编码,不可避免地会出现一些范围错误,其中变量的定义没有按以下方式使用 var 关键字:

function() {  
x = 5; ...
}

代替:

function() {  
var x = 5; ...
}

这发生在某个地方 - 我们不确定在哪里 - 并且搜索相关变量名称很困难,因为它是一个在我们的源代码中出现 1000 次的常见词。

有没有办法让 Firebug 在第一个创建给定全局变量的行上中断?澄清一下,我想在 window.xundefined 切换到已定义值的那一刻中断语句,并中断语句。

我已经尝试创建一个监视表达式并希望我可以将它变成一个断点,但我似乎无法在没有某种上下文或范围的情况下创建监视表达式。

如果 Firebug 做不到这一点,我会对任何可以在 Firefox 中实现这一点的东西感兴趣。

最佳答案

提供一些东西

  1. 你知道变量的名字
  2. 您在全局范围内没有使用该名称的变量(在函数外部声明),但仅在函数内部。
  3. 调用了声明变量的函数。

这个小脚本可以解决问题:

<script type="text/javascript">
window.__defineSetter__("x", function(value) { console.trace(); });
x = 1;
</script>

您将在该分配之前获得已执行代码的踪迹。

可能有些情况会报错,看一下JSLint .在那里加载所有 JS 文件并对其进行 lint。

关于javascript - 定义全局变量 x 时让 Firebug 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1013346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com