两种方式作用是一样的,第一种更直接

var Obj={

func:function(code){

window.eval(code);

}

}

var s='global'; // 全局变量

function demo3(){ // 局部空间

window.eval('var s="local"'); // 第一种方式(直接)

Obj.func("var s='sssss'"); // 第二种方式(间接)

demo3(); 

alert(s); //->'sssss' 

直接调用eval函数,则在调用者的空间执行;

如果调用 window.eval (code) 则在全局空间执行。

虽然 alert(eval==window.eval) 返回 true!


如果是IE浏览器,则提供了execScript(code)函数

它在全局空间执行code代码,相当于window.eval(code);