[英]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.