功能声明未被识别

时间:2015-11-11 15:37:41

标签: javascript

我的代码有一个函数声明

var string = function(){..}

稍后在代码中我将其用作

var value = function(){

  ...
  string();
}

变量值在string之后定义。应该没有理由不将字符串识别为函数。

Plnkr:http://plnkr.co/edit/9tRZnIVlRkNadPXCKsla?p=preview

如果您只是运行plnkr,错误将显示在line 98

2 个答案:

答案 0 :(得分:2)

问题出在第42行:你写了var hex, i, stirng = '';而不是string。修复变量名称,它将起作用!

事实上,在名为string的函数中有一个名为string的变量不是问题,因为有些人因为范围而声明。 在string函数内,对string的任何引用都将解析为内部变量string,而不是函数。

答案 1 :(得分:0)

您的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的结果),导致错误{{1} }。

相关问题