可能重复:
Javascript global variables
Should I use window.variable or var?
问题:定义全局变量的两种方法:
var someVariable
; window["someVariable"] = “some value”;
有什么区别?在我的测试中,IE中的两种方式不同(从IE6到IE8)。 (IE9没关系) 您可以在我的博客中查看它:ie-naming3.html,或运行以下代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Test naming in IE6</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.foo = window.foo || {};
foo.eat = function(){
alert("ie6");
};
</script>
</head>
<body>
<div id="container">
</div>
<script type="text/javascript">
alert(typeof window.foo.eat);
</script>
<!-- <script type="text/javascript" src="./ie6-naming.js"></script> -->
<script>
// alert(typeof window.foo.eat);
var foo = foo || {};
alert(typeof foo.eat);
</script>
</body>
</html>
感谢任何想法!
编辑:
问题是:运行代码,你得到两个警告:首先显示你的“功能”,但第二个显示你“未定义”,为什么?
答案 0 :(得分:0)
在全局范围内没有区别,在闭包或函数中它会有所不同:
(function() {
var a = 1;
})();
alert(a); //doesn't work
(function() {
window.a = 1; // or a = 1; (w/o the var) but not recommended (see comments)
})();
alert(a); //works!!