我正在尝试传递对变量的引用,然后在javascript中更新内容,这可能吗?例如,简单(失败)示例将是......
var globalVar = 2;
function storeThis ( target, value ) {
eval(target) = value;
}
storeThis( 'globalVar', 5);
alert('globalVar now equals ' + globalVar);
这当然行不通,有人可以帮忙吗?
答案 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)