您的位置:首页 > 其它

如何用eval()函数在局部函数内改变全局变量

2016-11-20 17:42 232 查看
两种方式作用是一样的,第一种更直接
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eval
相关文章推荐