Page 102 - JavaScript修炼之道
P. 102
94 附录B JavaScript调试指南
禁用一个断点(同时保留它的位置和条件):在Breakpoints子选项卡上反选指定断点上的
复选框。
当一个断点被触发时单步执行代码:源码面板上面的图标允许你单步进入(如果当前的代
码行调用了一个函数,执行这个操作会单步进入这个函数内部)、单步执行(直接执行函
数调用,而不进入函数内部)和单步跳出(执行当前所在的函数,然后从当前的函数跳出
到调用函数位置)。
即时观察局部变量和你感兴趣的表达式的值:在Watch子选项卡中完成这些操作。
为了让你熟悉上面的操作,我在这里给出一个例子,在这个例子中会使用到上面提到的所有
操作,当然你也可以在其他浏览器中尝试这个例子。首先,假设我们想在fibo()函数被调用且
传入的参数足够小(比如,小于5)的情况下进入单步模式。为了做到这一点,我们首先需要在
这个函数的第一行设置断点,然后在这个断点上配置合适的条件。
(1) 在函数的首行(对应图中的第2行)加上断点。
(2) 右击刚刚加上的断点,然后在提示框中输入你需要的条件:base<5。确认你所看到的和
图B-2中的情形相一致。
一切都设置好了!现在单击Web页面中的Fibo(20)按钮,然后函数会开始递归的执行,直到
断点被触发。单击右边面板中的Stack子选项卡来查看你现在所在的位置:你应该会看到类似图
B-3中的画面,这些内容展示了当前的递归状态:已经嵌套了15层(如果向下滑动滚动条,你会
看到初始的onclick事件处理器调用)。
单击Watch子选项卡,你可以看到所有的局部变量,包括当前绑定(this对象当前所引用的
内容)和参数。在图B-4中,你可以看到我们正在执行一个全局函数(因为this正指向全局的
window对象),base参数的值为4。注意你也可以在Watch子选项卡里修改这些值:双击列表中欲
修改的值,然后键入新值。
图B-2 在Firebug中设置一个有条件的断点