论坛首页 Web前端技术论坛

eval() 与 window.execScript() 大比拼

浏览 25110 次
精华帖 (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
0 请登录后投票
   发表时间:2007-09-18  
首先 eval 在 99% 的地方都是有害的。那1%就是js框架可能要用到,但必然是封装在底层,不可能让client code直接用。

所以楼主还有后面几位,你们可以说说你们的需求,如果你们不是在做js框架,我有9成把握你们对eval的用法是不当的。

其次,用spidermonkey遗留的window.eval是不太好的。因为其他引擎并不支持,而且说不定未来spidermonkey会取消这个magic feature。

过去qomo框架似乎用过替换var xxx为window.xxx的方法,我不认为是好方法,因为这导致对全局命名空间的不受控的访问。当然这是基于不同的设计哲学。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics