通过window属性定义变量IE bug
分类:Javascript
通过window属性的方式我们可以定义变量,主要在一些变量名未知时用到,window[variable]=sth;但是在IE下却有问题:
<html>
<body>
<script>
window.a={};
<script src="test.js"></script>
</body>
</html>
test.js代码如下:
alert(a);
var a=window.a||{};
测试Demo:window属性方式定义变量IE Bug
在IE下会alert出undefined,这个bug出现的情况是:一个文件中通过window属性定义变量,另一文件中通过var方式定义同名变量。这样原来定义的变量在另一文件中就会未定义。看来通过var的方式定义最为稳妥,像使用KISSY.app(“YIGLE”)这种方式,还是在前面加个var 定义以免带来一些不必要的麻烦:
var YIGLE=KISSY.app("YIGLE");
—————————————————–
update: 2011-04-11
hax 一篇比较深入说明此问题的文章:http://hax.iteye.com/blog/349569