在Javascript中通过引用访问变量

时间:2010-07-30 15:29:33

标签: javascript

我正在尝试传递对变量的引用,然后在javascript中更新内容,这可能吗?例如,简单(失败)示例将是......

var globalVar = 2;

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

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

这当然行不通,有人可以帮忙吗?

4 个答案:

答案 0 :(得分:4)

Eval不会返回值。

这将有效:

window[target] = value;

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

答案 1 :(得分:3)

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

您的样本与:

相同
var globalVar = 2;

function storeThis(value) {
    globalVar = value;
}

storeThis(5);

你究竟想做什么?

无法通过javascript中的引用传递标量。如果您需要这样做,请使用Number type或创建自己的对象,如:

var myObj = { foo: 2 };

答案 2 :(得分:2)

如果您真的想使用eval,可以使用以下内容:

var globalVar = 2;

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

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

function storeThis( target, value ) { eval( target + ' = ' + value ); } storeThis( 'globalVar', 5 ); alert('globalVar now equals ' + globalVar);

答案 3 :(得分:1)

最好的方法是使用对象,可以看作herehere ,或here