Javascript使用Firebug观察基于表达式的断点?

时间:2011-11-09 21:47:08

标签: javascript debugging firebug

现在正在完成一些事件路由,并且有很多调试步骤。

我知道在javascript中使用“debugger”并将其放在条件之后,这很有用。 我也知道右键单击一个断点来添加一个更好的测试表达式。 但是......我不知道这件事会带给我什么,我开始磨损我的功能键。有没有办法在监视表达式中添加断点?

基本上这个想法是这样的,在封装范围内,我想检查一个名为“this.id”的变量。如果this.id是我想要的值,我进入调试器。

有什么想法吗?

由于

想要补充说下面的迪迪埃的答案解决了我们在装饰“功能”的文章中概述的问题。这很可能是搜索我想要的所有函数的阻力最小的路径。

Function.prototype.debug = function(){   
   var fn = this; 
   return function(){     
       if (debugme) debugger; 
       return fn.apply(this, arguments);     
   }; 
};

3 个答案:

答案 0 :(得分:4)

如果您指的是" 条件断点",也就是说只有在语句为真时才暂停执行的断点,您可以通过右键单击来执行此操作在一行脚本上,选择"编辑断点条件...",然后添加你想要触发断点的语句,例如 this.id ===" foo& #34 ;;

答案 1 :(得分:4)

要以编程方式中断javascript代码,您可以使用以下语句:

debugger;

这适用于Firebug,Chrome的控制台和IE。

因此,根据您的问题,您可以执行以下操作:

if (this.id === "myId")
    debugger;

以下article非常有用。

答案 2 :(得分:1)

我不是100%清楚你需要什么与条件断点不同。例如加入

 var watchVar = this.id

然后设置

断点的条件
watchVar == someInt 

应该有效,不是吗?

如果没有,您可以通过在闭包中的某处放置一个正常断点来打破属性更改。当你点击它时,在监视窗格中查找this.id,右键单击它并选择“中断属性更改”。目前,这是你可以去的,但它不允许你指定一些id值而不是其他。