回答
正如Fermin所说,全局范围内的变量应该可以在声明后加载的所有脚本访问。您也可以使用window
或(在全球范围内)this
的属性以获得相同的效果。
// first.js
var colorCodes = {
back : "#fff",
front : "#888",
side : "#369"
};
...在另一个文件...
// second.js
alert (colorCodes.back); // alerts `#fff`
...在HTML文件...
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
在浏览器中,'window' *是全局作用域 - 因此window.colorCodes和(全局)对象colorCodes是同一个对象。 – Piskvor 2010-07-14 08:22:06
真的......我提到它的原因是您需要从非全局范围设置全局变量的情况。 – 2010-07-14 08:28:37
如果您将颜色代码存储在全局变量中,则应该可以从任意一个javascript文件访问它。
你可以请示例代码? – 2016-06-18 09:23:52
@edwardtorvalds - 查看接受的答案例如 – Fermin 2016-06-20 07:04:43
这应该工作 - 定义firstfile一个全局变量并从secondfile访问它:
<script src="/firstfile.js"></script>
<script src="/secondfile.js"></script>
firstfile.js:
个var colors = {
text:'#000000',
background:'#aaaaaa',
something_else:'blue'
};
secondfile.js:
do_something_with(colors.background);
请注意,您在其中加载脚本文件,该命令是用于一些浏览器显著(IE6肯定的,也许其他人)
我碰到amplify.js来了。它使用起来非常简单。要存储的值,我们把它称为“myvalue的”,你这样做:
amplify.store("myKey", "myValue")
并访问它,你做
amplify.store("myKey")
我不喜欢什么answer above说不过虽然,它并没有奏效我
,因为我是declaring
这些变量inside
JQuery的$(document).ready()
所以请确保你在
<script>
标签内声明你的变量而不是其他地方
我可能会这样做有点不同。我不确定为什么我使用这种语法,很久以前从某本书中复制它。但是我的每个js文件都定义了一个变量。第一个文件,没有任何理由,被称为R:
var R =
{
somevar: 0,
othervar: -1,
init: function() {
...
} // end init function
somefunction: function(somearg) {
...
} // end somefunction
...
}; // end variable R definition
$(window).load(function() {
R.init();
})
然后,如果我有一个很大的一块,我想分离,我把它放在一个单独的文件和不同的变量名称代码,但我仍然可以引用R变量和函数。我呼吁没有很好的理由,在所有新的TD:
var TD =
{
xvar: 0,
yvar: -1,
init: function() {
...
} // end init function
sepfunction: function() {
...
R.somefunction(xvar);
...
} // end somefunction
...
}; // end variable TD definition
$(window).load(function() {
TD.init();
})
你可以看到,其中在TD“sepfunction”我叫R.somefunction。 我意识到这不会提供任何运行效率,因为这两个脚本需要加载,但它确实帮助我保持我的代码组织。
- 1. 从另一个文件访问变量
- 2. 我可以通过指针从另一个文件访问文件的静态变量吗?
- 3. 从另一个组件访问变量
- 4. 从另一个访问组件变量
- 5. Perl:从另一个文件访问“我的”变量
- 6. 从另一个SWF文件访问SWF文件中的变量
- 7. 我可以从另一个脚本获取变量的值吗?
- 8. 我可以从另一个调用一个js文件吗?
- 9. 我可以从另一个加载一个.gitconfig文件吗?
- 10. 从另一个类访问类变量
- 11. 从另一个类的访问变量
- 12. 从一个组件到另一个组件的访问变量
- 13. 你可以在另一个文件中使用#define变量吗?
- 14. Screeps从另一个文件访问'主'变量?
- 15. 无法从另一个文件访问javascript变量
- 16. 如何从ios中的另一个nib文件访问变量
- 17. 如何从另一个php文件访问变量
- 18. 从另一个文件访问变量和方法
- 19. 从另一个php文件的类函数访问变量
- 20. iPhone SDK:我可以从一个视图中抓取实例变量并在另一个视图中访问吗?
- 21. 的JavaScript可以访问一个变量
- 22. 访问变量,所以我可以显示他们在一个树枝文件
- 23. Coffeescript可以访问SASS变量吗?
- 24. 我可以从Mustache.js中的另一个文件加载partials吗?
- 25. 我们可以在另一个xml中访问xml元素吗?
- 26. 我可以从我的应用程序访问另一个应用程序吗?
- 27. 从另一个组件类访问组件类变量
- 28. 从另一个类访问对象以获取其变量
- 29. 访问变量从另一个玉文件中的Jade文件传递
- 30. 帧可以访问另一个帧的按钮/组件吗?
你为什么不合并它们? – Roki 2010-07-14 08:12:13
@Roki:例如,您可以从其他网站加载数据,而处理它们的脚本位于您的网站上:<脚本src =“second.js”>' – Piskvor 2010-07-14 08:23:20
datasource网站没有回调? 我的意思: 下载second.js 包含: ... 功能secondscriptFn(O){// 做一些事情/ w的数据; } ... 下载http://datasource.example.net/first.js?callback=secondscriptFn 然后首先包含: secondscriptFn({back:“#fff”,front:“#888”,side: “#369”}); 由于您可以控制first.js作用域,所以它比全局作用域版本更具可控性和可靠性...... – Roki 2010-07-14 08:43:46