【问题标题】:best way in javascript to make console.log calls not cause problems when there's no console?在没有控制台的情况下,javascript 中进行 console.log 调用不会导致问题的最佳方法?
【发布时间】:2011-04-27 14:02:33
【问题描述】:

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

// global scope
if (typeof(console) == 'undefined') {
    console = {
        info : function() {},
        dir : function() {},
        error : function() {},
        log : function() {}
    };
}

但我不喜欢手动维护控制台功能列表的想法。其他想法?

(如果有帮助,我们还会在项目中使用 jQuery。)

【问题讨论】:

  • 我个人认为你上面的解决方案是最好的。事实是,如果您不希望未知对象或函数导致错误,则必须像上面那样删除它们或以非侵入性方式定义它们。
  • 您是否使用 Google 或 Yahoo 之类的编译器来压缩和验证您的 JavaScript?我一直在寻找可以在编译时删除所有console 命令的东西。

标签: javascript jquery console firebug


【解决方案1】:

我个人只是像这样使用$.noop 来缩短它:

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

但是无论您使用什么功能,都可以添加它们。

【讨论】:

  • 很好,我现在不知道 $.noop
  • @Marcel - 不是,您引用的是 same 空函数,而不是每次都创建一个新函数。
猜你喜欢
  • 2012-03-26
  • 2021-09-05
  • 2010-12-21
  • 2023-03-24
  • 1970-01-01
  • 2023-03-09
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多