我正在研究一些JavaScript - 当然! - 我正在Chrome中进行一些调试。
现在,我希望在调用函数(具有给定名称)时以编程方式启用断点。
它应该像断点一样运作。 debugger
关键字总是中断(uhg!)并且是一个丑陋的工件,可以放入代码中删除。
它不应该需要手动源代码导航/交互。由于源是通过自动构建过程组合而来的,因此这是一项耗时的工作。
理想情况下,它会像简单的和编程控制一样,例如。
Debugger.setBreakpoint({onFunction: "Foo.prototype.bar"})
有没有办法设置一个断点,以便在没有手动导航当前加载的脚本的情况下调用特定(命名)函数?
如果不是以编程方式设想的,有没有办法通过设置评论的断点? (断点,而非debugger
- 休息。)
(我可修改为在其他浏览器中使用类似的开发人员工具,只要它在Windows上运行 - 但Chrome解决方案,如果存在,则是理想的。)
答案 0 :(得分:7)
在Chrome开发者工具中,您可以使用debug(function)
语句来调用函数并在其中进行分解。
如果你有一个确切的函数引用,还有一种方法
var func = function(){
if (arguments.callee._debug) {
debugger;
}
}
将_debug
标记设为true
func._debug = true
然后将停止函数func()
。这很棘手,这不会有效strict mode
。
答案 1 :(得分:3)
如何编写一个可以放置断点的函数:
function setBreakpoint (fn) {
return function () {
debugger;
fn.apply(this, arguments)
}
}
在您的控制台中,您可以覆盖要中断的功能:
Foo.prototype.bar = setBreakpoint(Foo.prototype.bar);