首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量作用域

变量作用域
EN

Stack Overflow用户
提问于 2010-10-05 22:08:29
回答 5查看 118关注 0票数 0

我有两个javascript文件包括在我的网站的标题。这两个文件包含几乎相同的变量。

如果我有像这样的标题

代码语言:javascript
复制
  <head>
    <script src="http://127.0.0.1/js/file1.js" type="text/javascript"></script>
    <script src="http://127.0.0.1/js/file2.js" type="text/javascript"></script>
 </head>

是否可以从file2.js访问file1.js中定义的var?

这就是我正在尝试的

代码语言:javascript
复制
    file1
    $(function() {
        var x = 1;
    });

file2
    $(function() {
      console.log(x); //This dosen`t work. Can`t access var
    });
EN

回答 5

Stack Overflow用户

发布于 2010-10-05 22:27:03

你这样做是不可能的。变量必须存在于全局作用域中,才能跨文件使用。在您的示例中,x是在匿名函数的范围内定义的。如果您将其更改为

代码语言:javascript
复制
// file1 
var x;
$(function() { 
    x = 1; 
}); 

然后,您可以从第二个文件访问x

票数 2
EN

Stack Overflow用户

发布于 2010-10-05 22:11:41

是的,这应该行得通。只要变量是一个脚本中的全局变量,它就会出现在另一个脚本中。

票数 0
EN

Stack Overflow用户

发布于 2010-10-05 22:11:51

是的,您在DOM中有一个全局对象,两个文件都向该对象写入变量。基本上,如果file1说:

代码语言:javascript
复制
foo = bar;

然后,您可以在file2中访问foo

如果要显式声明全局变量,可以使用window对象,它是网页中的全局对象:

代码语言:javascript
复制
window.foo = 'bar';

有关全局对象的更多信息:http://www.quirksmode.org/js/this.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档