Javascript 如何访问父函数';什么是局部变量?
假设我有这个函数Javascript 如何访问父函数';什么是局部变量?,javascript,scope,dynamic-variables,Javascript,Scope,Dynamic Variables,假设我有这个函数 var foo = function () { var bar = true; var inner = function () { alert(bar); }(); } 当我运行此程序时,一切正常,alert说“正确”。但是如果变量名是动态的,并且我必须从字符串中获取bar的值,该怎么办?如何访问父作用域以获取变量 示例:如果作用域是window,并且我们有一个包含动态变量名称的字符串,我将使用window[someString]获取该变量 我猜在我的
var foo = function ()
{
var bar = true;
var inner = function ()
{
alert(bar);
}();
}
当我运行此程序时,一切正常,alert说“正确”。但是如果变量名是动态的,并且我必须从字符串中获取bar的值,该怎么办?如何访问父作用域以获取变量
示例:如果作用域是window,并且我们有一个包含动态变量名称的字符串,我将使用window[someString]获取该变量
我猜在我的问题中也需要同样的方法,但我不知道使用哪个对象作为父对象。没有父对象,因为变量不是任何对象的属性 您可以使用
eval
函数从包含名称的字符串中获取变量的值。例如:
var foo = function ()
{
var bar = true;
var inner = function ()
{
var name = "bar";
alert(eval(name));
}();
}
警告:
函数速度很慢,因为它每次都必须将字符串解析为代码eval
函数是危险的,因为它将执行字符串包含的任何内容。如果字符串可以包含其他用户可以控制的任何内容,则可能会打开您的站点进行跨站点脚本编写eval