我正在编写一个大小合适的 JavaScript 动画库,我想在其中包含调试代码。我可以轻松地进行检查:
if(myLib.debugger){
console.warn('warning message');
}
但是,如果每秒运行几千次,最终会导致性能问题。在整个代码中添加更多检查,效果会更加明显。
我想知道是否可以检查 onload 是否应该启用调试器,如果是的话......请像这样:
//debugger if(!this.name) console.warn('No name provided');
进入:
if(!this.name) console.warn('No name provided');
如果未启用,则对代码进行注释;如果已启用,则取消注释,从而消除任何可能的性能问题。如果通过 ajax 加载,是否可以在整个脚本上使用正则表达式来完成此操作?我试图避免需要相同代码的两个版本:lib.dbug.js 和 lib.js。
跨浏览器兼容性对此并不重要(我真的只担心新浏览器),我认为拥有该项目很好。然而,如果可能的话,那将是一件很棒的事情。
任何见解将不胜感激。
最佳答案
执行此操作的最简单方法是检查是否应禁用调试器,如果是,请将其替换为在脚本开头不执行任何操作的模拟对象:
if (!myLib.debugger) {
window.console = (function () {
var newConsole = {};
var key;
for (key in window.console) {
if (typeof window.console[key] === 'function') {
newConsole[key] = function () {};
}
}
return newConsole;
}());
}
这种方法的开销应该可以忽略不计。
关于javascript - 动态启用/禁用调试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406311/