如何用eval()函数在局部函数内改变全局变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用eval()函数在局部函数内改变全局变量相关的知识,希望对你有一定的参考价值。
两种方式作用是一样的,第一种更直接
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()函数在局部函数内改变全局变量的主要内容,如果未能解决你的问题,请参考以下文章