在Javascript中通过引用访问变量

在Javascript中通过引用访问变量,javascript,Javascript,我试图传递一个变量的引用,然后用javascript更新内容,这可能吗?例如,一个简单(失败)的例子是 var globalVar = 2; function storeThis ( target, value ) { eval(target) = value; } storeThis( 'globalVar', 5); alert('globalVar now equals ' + globalVar); 这当然不行,有人能帮忙吗?Eval不返回值 这将有助于: window[t

我试图传递一个变量的引用,然后用javascript更新内容,这可能吗?例如,一个简单(失败)的例子是

var globalVar = 2;

function storeThis ( target, value ) {
    eval(target) = value;
}

storeThis( 'globalVar', 5);
alert('globalVar now equals ' + globalVar);

这当然不行,有人能帮忙吗?

Eval不返回值

这将有助于:

window[target] = value;

(但是,您没有传递引用,而是传递变量名)

在这种情况下,
storeThis
中的代码已经可以访问
globalVar
,因此无需传递它

您的样品与:

var globalVar = 2;

function storeThis(value) {
    globalVar = value;
}

storeThis(5);
你到底想干什么

在javascript中不能通过引用传递标量。如果需要这样做,请使用或创建自己的对象,如:

var myObj = { foo: 2 };

如果确实要使用eval,可以使用以下命令:


var globalVar=2

function storeThis( target, value ) {
    eval( target + ' = ' + value );
}

storeThis( 'globalVar', 5 );
alert('globalVar now equals ' + globalVar);

digitalfresh是正确的,eval用于对语句进行评估,因此您可能需要创建一个eval,例如eval(“窗口”。+target+”=“+value+”;”);但是要充满太多的递归。是的,但是为什么要
eval
?这绝对不是少数适合
eval
的情况之一。答对了!感谢LFI和DigitalFresh,这是一种享受。jasongetsdown还有更好的方式!在这种情况下,如果
value
是一个字符串,则
eval()
会将其视为变量(如果是一个单词)、无效代码(如果是多个javascript不理解的单词)或表达式(如果是有效的javascript表达式)。