javascript - 在函数范围内关闭 console.log

标签 javascript

我在模块中编写代码,每个模块都可以单独调试。我想在模块级别打开或关闭 console.log 消息,以便只关注我正在处理的模块。

我可以为每个模块设置一个 _debug_ 变量,将其设置为 truefalse,然后编写日志消息,例如

if(_debug_) {
   console.log('The is a debug message.');
}

我觉得这种方法有点麻烦。我可以做得更好吗?

最佳答案

如果您想禁用调试语句,您可以在进入模块范围时劫持 console 对象。这是生成替代“控制台”对象的简单方法:

function noopConsole()
{
    var konsol = {};
    function noop(){}

    for (var k in window.console)
    {
        konsol[k] = noop;
    }

    return konsol;
}

然后,在模块的开头:

var console = _debug_ ? window.console || noopConsole();

就是这样。

关于javascript - 在函数范围内关闭 console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945557/

相关文章:

javascript - 尝试连接到 Raspberry 时,请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 在表单上显示表单验证

javascript - Reactjs:状态更改时重新呈现 iframe

javascript - 为什么 Array.prototype.pop() 会影响其他数组?

javascript - 当我在一个页面上有多个 Like 按钮时,有没有办法防止同一个 JS/CSS 文件被多次加载?

javascript - 将 React 中的函数从组件移动到引用库

javascript - 奇怪的 Javascript 数组同步技巧?

javascript - 是否有 ES6 快捷方式来比较元素数组和对象键并删除不匹配的元素?

javascript - JQuery 在滚动问题上添加类

Javascript amcharts 堆积条形图单击处理程序