使用参数作为变量名(Javascript)

时间:2013-09-13 02:12:40

标签: javascript function arguments

我似乎无法找到直接回答此问题的问题。

我想使用函数参数作为该函数中变量的名称。

如,

test(var1);

function test(foo)
{
    var foo = 'Hello world!'; // Set var1
}

alert(var1); // Hello world!

我可以在这里使用括号(即窗口。[])吗?

2 个答案:

答案 0 :(得分:2)

是的,您可以使用括号:

window[foo] = "Hello World"

这里是JSFiddle

答案 1 :(得分:1)

呃......好吧,所以这几乎肯定不是一个好主意。

简短回答:sorta。如果您在浏览器中运行,则可以执行以下操作:

var polluteGlobalNamespace = function(symbol) {
    window[symbol] = "whatever";
};
polluteGlobalNamespace('foo');
console.log(foo);

但这仅适用于全局变量。使用函数范围的变量无法做到这一点,因为JavaScript缺少一流的环境。

但除非你做一些深色的元编程,否则这不是一个好主意。发布您尝试使用此函数解决的问题可能会更好,看看这是一种惯用的方法。