我可以在标准 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/