精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-18
在firefox中可用 window.eval 让变量的作用域变为全局
function test(script ){ var s="var x=1;"; if(window.execScript){ window.execScript(s); } else{ window.eval(s);/ } } test(); alert("x=" + x);//不管是ie还是firefox 都能正确得到 x =1 |
|
返回顶楼 | |
发表时间:2007-09-18
首先 eval 在 99% 的地方都是有害的。那1%就是js框架可能要用到,但必然是封装在底层,不可能让client code直接用。
所以楼主还有后面几位,你们可以说说你们的需求,如果你们不是在做js框架,我有9成把握你们对eval的用法是不当的。 其次,用spidermonkey遗留的window.eval是不太好的。因为其他引擎并不支持,而且说不定未来spidermonkey会取消这个magic feature。 过去qomo框架似乎用过替换var xxx为window.xxx的方法,我不认为是好方法,因为这导致对全局命名空间的不受控的访问。当然这是基于不同的设计哲学。 |
|
返回顶楼 | |