Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种方法可以通过编程设置断点(例如,当调用命名函数时)?_Javascript_Google Chrome_Debugging_Breakpoints_Developer Tools - Fatal编程技术网

Javascript 是否有一种方法可以通过编程设置断点(例如,当调用命名函数时)?

Javascript 是否有一种方法可以通过编程设置断点(例如,当调用命名函数时)?,javascript,google-chrome,debugging,breakpoints,developer-tools,Javascript,Google Chrome,Debugging,Breakpoints,Developer Tools,我正在做一些JavaScript——当然我正在用Chrome做一些调试 现在,我想在调用函数(具有给定名称)时以编程方式启用断点 它的功能应该像一个断点。debugger关键字总是会中断(uhg!),这是一个很难放入代码并从代码中删除的工件 它不需要手动源代码导航/交互。由于源代码是通过一个自动化的构建过程进行组合的,因此这将成为一项耗时的工作 理想情况下,它将是一个简单的和程序控制的东西,例如 有没有一种方法可以在不手动导航当前加载的脚本的情况下为调用特定(命名)函数设置断点 如果不是按照编

我正在做一些JavaScript——当然我正在用Chrome做一些调试

现在,我想在调用函数(具有给定名称)时以编程方式启用断点

  • 它的功能应该像一个断点。
    debugger
    关键字总是会中断(uhg!),这是一个很难放入代码并从代码中删除的工件

  • 它不需要手动源代码导航/交互。由于源代码是通过一个自动化的构建过程进行组合的,因此这将成为一项耗时的工作

  • 理想情况下,它将是一个简单的和程序控制的东西,例如


    有没有一种方法可以在不手动导航当前加载的脚本的情况下为调用特定(命名)函数设置断点

    如果不是按照编程的设想,有没有办法通过注释设置断点?(断点,而不是
    调试器
    -Break。)


    (我可以在另一个浏览器中使用类似的开发工具,只要它在Windows上运行——但如果存在Chrome解决方案,这是理想的。)

    在Chrome开发工具中,您可以使用语句调用函数并在其中断开

    如果您有精确的函数引用,还有一种方法
    var func=function(){
    if(arguments.callee.\u debug){
    调试器;
    }
    }

    \u debug
    标志设置为
    true

    func.\u debug=true


    然后将停止函数
    func()
    。这很棘手,而且在严格模式下无法使用
    如何编写一个可以放置断点的函数:

    function setBreakpoint (fn) {
        return function () {
           debugger;
           fn.apply(this, arguments)
        }
    }
    
    在控制台中,您可以覆盖要中断的功能:

    Foo.prototype.bar = setBreakpoint(Foo.prototype.bar);
    

    @用户2864740太好了。我刚刚编辑了注释并添加了另一种方式
    debug(..)
    解决方案非常适合这一要求,特别是因为这只是当前的调试工件!我不敢相信我以前从未知道这件事。
    Foo.prototype.bar = setBreakpoint(Foo.prototype.bar);