两种方式作用是一样的,第一种更直接
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);
时间: 2024-11-25 13:03:07