如何用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()函数在局部函数内改变全局变量的主要内容,如果未能解决你的问题,请参考以下文章

Python入门-5函数:04变量的作用域-全局变量-局部变量-栈帧内存分析-效率测试

day17 内置函数

js在函数中传进全局变量,修改全局变量问题。

2017.11.27 变量进阶与LED矩阵

全局变量和局部变量的区别

全局变量与参数