繁体   English   中英

var控制台的重新声明

[英]redeclaration of var console

我正在使用Hoptoad来获取我的JavaScript的错误报告,最近我收到了这个错误:

var控制台的重新声明

回溯不是很有用:

internal: :

:0:in `{anonymous}()'

我知道它发生在“Mozilla / 5.0(X11; U; Linux x86_64; zh-CN; rv:1.9.2.16)Gecko / 20110323 Ubuntu / 10.10(特立独行)Firefox / 3.6.16”但我无法弄清楚如何重新声明控制台。 你有什么想法? 这是我如何声明控制台:

if (typeof console == "undefined") {
  var console = {
    log: function() {
    }
  };
}

您无法有条件地声明变量。 在执行任何代码之前,将解析声明并将其添加为激活对象的属性。 您的代码相当于:

var console;
if (typeof console == "undefined") {
  console = {
    log: function() {
    }
  };
}

这也被称为“吊装”(不是我喜欢的术语),因为声明被有效地“提升”到函数的顶部或高于任何其他代码。

在同一函数或作用域中多次声明变量是无害的,但它表明可能存在对范围的误解(例如,期望块范围)或无意中重用标识符。

请编辑此项以确认或拒绝此部分:

这样做的方法是重新定义window.console:

if (typeof window.console == "undefined") {
  window.console = {
    log: function() {
    }
  };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM