从javascript中的参数创建变量名

从javascript中的参数创建变量名,javascript,function,variables,Javascript,Function,Variables,我想知道是否有可能从传递给javascript函数的参数中创建变量名。大概是这样的: function createVar(number) { var "number" + number; } createVar(1) 我不熟悉堆栈溢出和编程,因此希望您能提供帮助。可以将对象解释为关联数组,其中您可以指定索引并通过索引哈希的名称获取值: var x = Array(); x[number] = value; 单变量名是程序员专用的,当您在代码中动态设置变量时,代码将很难维护和理解 老实说,我

我想知道是否有可能从传递给javascript函数的参数中创建变量名。大概是这样的:

function createVar(number) {
var "number" + number;
}
createVar(1)

我不熟悉堆栈溢出和编程,因此希望您能提供帮助。

可以将对象解释为关联数组,其中您可以指定索引并通过索引哈希的名称获取值:

var x = Array();
x[number] = value;

单变量名是程序员专用的,当您在代码中动态设置变量时,代码将很难维护和理解

老实说,我不明白为什么这会有用,因为每次你想使用变量时,你必须用你的number参数来搜索它

但是,您可以这样做,尽管不是您描述的确切方式:

function createVar(number){
  eval("var number" + number.toString() + ";");
}
但是,此变量只能在函数中访问,以使其全局分配给窗口对象:

function createVar(number){
  window["number" + number] = 15; // creates "global" variable
}

但是,正如我之前所说的,我不认为这是有用的,[I]从来没有[/I],如果你想按数字对值进行分层,最好使用数组。

你可以将其附加到窗口对象,但请注意它是全局的。例如:

function createVar(varName, value) {
    window[varName] = value;
}

createVar("test", "Hello World");
alert(test); // Outputs "Hello World".

不,那是不可能的。@FelixKling是的。这似乎是一个错误。“请告诉我们你到底想完成什么。”奥哈代尔说。我认为这是可能的,但使用数组可能更好。这到底有什么用处?请注意,JavaScript中没有关联数组。全局变量的情况可以用window['number'+number]=15;更好地解决@菲利克斯克林,哦,我明白了-这能避免评估吗?在这种情况下是的。当然对局部变量不起作用。eval将是局部变量的唯一方法,无论如何,这绝对是错误的,这就是为什么我说这是不可能的;了解OP试图解决的实际问题将允许我们提供实际的解决方案。@FelixKling是的,我同意。我会很快跳进去编辑我的答案。为什么不把它分配给一个对象?@cyan Simplicity,因为OP可能只想通过它的名字访问变量。例如,除myObj.test或myObj[test]之外的测试。