未捕获的ReferenceError:未定义{var}。文件是单独创建的

时间:2014-07-27 11:30:08

标签: javascript jquery document-ready

为什么我的javascript文件中会出现Uncaught ReferenceError: i is not defined

所以这就是我的表现。

app.js

$(function() {
  var i = 1;
});

some.js

$(function() {
  alert(i);
});

以及我如何对文件进行排序。

// included jquery here
<script src="/app.js" type="javascript/text"></script>
<script src="/some.js" type="javascript/text"></script>

如何从app.js或其他javascript文件执行或访问变量?我认为它们应该按顺序列出。我哪里做错了?任何帮助将非常感激。感谢

1 个答案:

答案 0 :(得分:2)

问题是你在本地范围内定义i

你应该尝试这样

<script type="text/javascript">
  var i = 1; //i in a global scope.
</script>

<script>
  alert(i);
</script>

如果您在某处再次定义i,可能会有冲突。因此,有一种更好的方法来定义名称空间以避免像下面这样的冲突。

<script type="text/javascript">
  var firstScript = {}; //this will be namespace for first script
  firstScript.i = 1;
</script>
<script>
  alert(firstScript.i);
</script>