簡體   English   中英

無法識別功能聲明

[英]function declaration not being recognized

我的代碼有一個函數聲明

var string = function(){..}

稍后在代碼中,我將其用作

var value = function(){

  ...
  string();
}

變量值在字符串后定義。 應該沒有理由不將字符串識別為函數。

在此處顯示Plnkr: http ://plnkr.co/edit/9tRZnIVlRkNadPXCKsla?p = preview

如果你只是運行plnkr,錯誤將出現在line 98

問題出在第42行:您寫了var hex, i, stirng = ''; 而不是string 修復變量名稱,它將起作用!

你有一個命名變量的事實string調用的函數里面string是不是一個問題,因為有些人是因為范圍說明。 string函數內部,對string任何引用都將解析為內部變量string ,而不是函數。

您的string函數的第42行有錯字:

41 var string = function() {
42  var hex, i, stirng = ''; // typo 'stirng' for 'string'
43

因此在第53行, string是指函數string 當您嘗試向其添加字符串ch時,它被強制轉換為字符串。

52      } else {
53        string += ch; // the function string is coerced to string
54      }

然后在第91行調用string該函數已被字符串替換( string.toString() + ch的結果),從而導致錯誤Uncaught TypeError: string is not a function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM