如何用 eval 定义全局变量?

作者:vkvi 来源:ITPOW(原创) 日期:2010-10-13

有人说定义全局变量有两种方法:

  • 法一、在全局作用域下;
  • 法二、省略 var。

现在的问题是在非全局使用域下用 eval 定义全局变量

所以法一在任何浏览器中都不可行,法二在 IE 中不可行。

其实还有第三种方法:

在 IE 中用 window.execScript 就是在全局作用域了,在 Firefox、Chrome 中为 eval 加上 window. 也是在全局作用域下了。

实际上,window.execScript、window.eval 是改变其中代码的作用域,所以说用它来定义全局变量只是一个引子,看下面的例子,虽然 window.execScript、window.eval 没有定义全局变量,但使用了全局变量,alert 显示 0。

另外,有人推荐用 with,实际上 with 这法在 IE 中是走不通的:

相关阅读

相关文章