开发者

Accessing a variable by reference in Javascript

I'm trying to pass a reference to a variable and then update the contents in javascript, is that possible? For example a simple (fail) example would be...

var globalVar = 2;

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

sto开发者_Python百科reThis( 'globalVar', 5);
alert('globalVar now equals ' + globalVar);

This of course doesn't work, can anyone help?


Eval does not return a value.

This will work:

window[target] = value;

(however, you are not passing the reference, you're passing the variable name)


In this case the code in storeThis already has access to globalVar so there's no need to pass it in.

Your sample is identical to:

var globalVar = 2;

function storeThis(value) {
    globalVar = value;
}

storeThis(5);

What exactly are you trying to do?

Scalars can't be passed by reference in javascript. If you need to do that either use the Number type or create your own object like:

var myObj = { foo: 2 };


If you really want to use eval, you could use the following:

var globalVar = 2;

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

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜