为什么在这种情况下我的函数在函数中被认为是未定义的

时间:2014-08-26 03:39:16

标签: javascript function debugging undefined

我的函数addSpace生成一个数组数组,每个索引都是一个字符串。我的功能首先似乎有一个错误;计算机说undefined不是一个函数。我已经找到了这个bug,但还没有找到它。这是大量代码的一部分。而这部分代码还没有完成。错误不是" drawTable",而是使用函数" first"。

var drawTable = function(){
  var ret = addSpace();
  var table, i;
  var retFirst = "";
  var first = function(){
    for(i = 0; i < ret.length; i++){
      var a = ret[i][0].join();
      console.log(a);
      retFirst = retFirst + a;
      console.log(retFirst);
    };
    return retFirst;
  };
}
console.log(drawTable());

谢谢! :)

1 个答案:

答案 0 :(得分:1)

考虑这个简化的例子:

 function someFunction() {
     var anything = "I am defined!";
 }
 someFunction();
 console.log(anything);   

以上结果会导致undefined,因为anything仅在someFunction的正文中定义,而不是在someFunction之外,即使在调用函数之后也是如此。

在您的情况下,drawTableanythingfirst为{{1}}。