变量范围
问题描述:
我有两个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定义瓦尔?
这是我真的想
file1
$(function() {
var x = 1;
});
file2
$(function() {
console.log(x); //This dosen`t work. Can`t access var
});
答
是的,这应该工作。只要变量是一个脚本中的全局变量,它就会出现在另一个脚本中。
答
是的,你在DOM中有一个全局对象,这两个文件都写入变量。基本上,如果file1说:
foo = bar;
然后在文件2,您可以访问foo
如果你明确要声明一个全局变量,你可以使用window
对象,它是在一个网页的全局对象:
window.foo = 'bar';
答
如果你认为包括javascri的pt文件当然代替脚本的实际内容。如果变量是全局变量,file2将有权访问它。
答
你可以做到这一点的唯一方法是给每个文件自己的“命名空间”。
var File1 = {
X: 2
};
var File2 = {
X: 3
};
以防万一这是不明确的。我的意思是每个文件的内容必须包装在一个命名对象中,它将充当命名空间。
答
这是不可能的,你这样做。变量必须存在于全局范围内才能跨文件使用。在你的例子中,x
在匿名函数的范围内定义。如果你把它改成
// file1
var x;
$(function() {
x = 1;
});
,那么你可以从你的第二个文件访问x
。
'是否可以从file2.js中访问file1.js中定义的变量?你能举个例子吗? – 2010-10-05 14:10:16
Duplicate:http://*.com/questions/751882/html-javascript-include-file-variable-scope – Bertvan 2010-10-05 14:11:41