javascript中使console.log调用在出现';没有控制台吗?

javascript中使console.log调用在出现';没有控制台吗?,javascript,jquery,console,firebug,Javascript,Jquery,Console,Firebug,我正在使用firebug并进行大量的console.log、.info、.dir调用等。当应用程序在关闭firebug的机器上运行时,可能会导致错误。避免这种情况的最佳方法是什么?这似乎有效: // global scope if (typeof(console) == 'undefined') { console = { info : function() {}, dir : function() {}, error : function

我正在使用firebug并进行大量的console.log、.info、.dir调用等。当应用程序在关闭firebug的机器上运行时,可能会导致错误。避免这种情况的最佳方法是什么?这似乎有效:

// global scope
if (typeof(console) == 'undefined') {
    console = {
        info : function() {},
        dir : function() {},
        error : function() {},
        log : function() {}
    };
}
但是我不喜欢手动维护控制台功能列表的想法。其他想法

(如果有帮助的话,我们在项目上也有jQuery。)

我个人只是用它来缩短它,如下所示:

if(!window.console)
  window.console = { log: $.noop, group: $.noop, groupEnd: $.noop };

但是无论您使用什么函数,都要添加它们。

我个人认为您上面的解决方案是最好的。事实上,如果你不想让未知的对象或函数引起错误,你必须删除它们或像上面那样以非侵入性的方式定义它们。你是否使用谷歌或雅虎这样的编译器来压缩和验证你的JavaScript?我一直在寻找一种可以在编译时删除所有
控制台
命令的东西。noop@Marcel-不是,您引用的是同一个空函数,而不是每次都创建一个新函数。