簡體   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