在内部定义一个数组,在外部调用时返回undefined

时间:2013-06-26 07:29:55

标签: javascript

我有一个内部脚本,其数组定义如此。它还有一个外部脚本,用于读取“data”数组中的数据集。我制作了一个模拟我如何设置的东西,如果没有帮助我会提供实际页面的链接。

内部脚本:

<script type="text/javascript">
  data = {    
   "id": "1",
   "name": "joe"
  }
</script>

外部脚本:

(function(window, document, undefined) {
  find = {
    postCount: function(){
      var user = data.name;
    }
  };

  find.postCount(); // If called here, data is undefined.

})(this, document);

问题: 如果我在任何地方调用该函数,但是从控制台调用它返回undefined。

我仍然是javascript的新手,所以我可能犯了一个愚蠢的错误或其他什么,如果你需要更多细节让我知道。此外,对帖子的质量道歉,这是我第一次在这里发帖。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

不应该是data = { ...

答案 1 :(得分:0)

您可能会在脚本块声明数据之前包含外部javascript文件。这样做意味着在声明find.postCount();之前调用data。然后从控制台调用它将起作用,因为在那时声明了data

另请注意,当我调用它时,调用find.postCount();显示为在控制台窗口中返回undefined(因为该函数声明变量user但从未实际返回任何内容。