javascript - 如何在标准/ native JavaScript 函数中设置断点?

标签 javascript javascript-debugger

我可以在标准 JavaScript 函数上设置断点吗?例如,我可以在每次 context.beginPath() 时暂停调试器吗?叫做?或者每次 String.replace()叫什么?

更新:我所说的标准 JavaScript 函数是指内置到 JavaScript 引擎中的函数。

最佳答案

是的,您可以通过执行以下两个步骤覆盖原始功能来做到这一点:

复制(真正引用)原始函数:

mylog = console.log;

用插入 debugger 语句的副本覆盖原始文件:

console.log = function(){
    debugger;
    mylog.apply(this, arguments);
}

现在调用 console.log 时将执行断点。 (请注意,您必须根据被覆盖的函数以不同方式处理不同的函数参数)

这是另一个使用实例方法的示例,例如 String.prototype.replace:

let originalFunction = String.prototype.replace;
String.prototype.replace = function(...args) {
    debugger;
    return originalFunction.call(this, ...args);
}

console.log('foo bar baz'.replace('bar', 'BAR'));

关于javascript - 如何在标准/ native JavaScript 函数中设置断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882295/

相关文章:

crash - Javascript无限递归函数导致Android 10上的Chromium 50 ARM64 lib崩溃

javascript - Opera 蜻蜓脚本调试器的烦恼

php - for循环中的JQuery ajax函数表现得很奇怪

javascript - 随机显示问题的名称值对的多维数组(javascript/jquery)

javascript - 在 div 中调用 javascript 函数

javascript - 调试 Javascript/AngularJS 的最佳方法是什么?

javascript - jQuery 加入 location.hash 无尽清爽 Firefox

javascript - 如何根据条件动态设置 Aurelia 中复选框的选中属性

firefox-addon - 如何激活 Firefox 调试器?

webstorm - 无法在node_modules内设置断点(WebStorm)