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

Javascript 在内部定义数组,在外部调用时返回undefined,javascript,Javascript,我有一个内部脚本,它有一个这样定义的数组。它还有一个外部脚本,用于读取“数据”数组中的数据集。我制作了一个如何设置东西的模型,如果没有帮助,我会提供一个链接到实际页面 内部脚本: <script type="text/javascript"> data = { "id": "1", "name": "joe" } </script> (function(window, document, undefined) { find = {

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

内部脚本:

<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还是相当陌生,所以我可能犯了一个愚蠢的错误或其他什么,如果你需要更多的细节,请告诉我。另外,为帖子的质量道歉,这是我第一次在这里发帖


非常感谢您的帮助。

这不应该是
数据={…

您可以在脚本块声明数据之前包含外部javascript文件。这样做意味着
查找.postCount()在声明
数据之前调用了
。从控制台调用它会起作用,因为此时声明了
数据


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

是的,这在实体模型中是一个错误。post现在已修复。如果您按照该顺序嵌入了脚本(首先是数据定义,其次是带有自动调用函数的脚本),然后我看不出这不起作用的原因(假设脚本“正常”嵌入,没有异步/延迟或任何东西)。请提供一个jsfiddle.net示例,我们可以在其中看到您的问题。谢谢,这是程序问题。我不敢相信我没有想到。谢谢,非常感谢您的帮助。