0

如何获取变量的名称?

假设我有一个空变量:

var myvariable;

我怎样才能得到变量名,这样:

alert(this_is_what_i_am_looking_for);

将显示:

myvariable

编辑:

也许我把事情复杂化了。我真正的问题是我有这两个变量:

var firstVariable;
var secondVariable;

我想创建第三个变量,它实际上具有这个名称:

var firstVariablesecondVariable;

编辑2:

谢谢各位的解答,信息量太大了,我得好好看看。

这就是我所拥有的:

<div></div>
<div></div>
<div></div>

var i = 0;
var q = 0;

$('div').each(function() {
    var qi;
    i++;
});​

所以我想创建三个变量:var 00;var 01;var 02; 然后我将使用 ajax 加载更多 div 并执行以下操作:

q++;
i=0;

所以当我第二次应用每个函数时,我还有三个变量:var 10;var 11;var 12;

4

3 回答 3

3

变量名称是标识符,您不能“询问”标识符的名称。您可以做的是使用标识符的内容创建一个新变量,如下所示:

 var var1 = "variable1";
 var var2 = "variable2";

 // this will create an property/variable "variable1variable2" 
 // on the global namespace.
 window[var1 + var2] = "xyz";

 var content = variable1variable2; // content = xyz;
于 2012-09-02T18:37:36.610 回答
2

也许您可以使用哈希表将名称映射到值。最后,值 barFooTest 的名称 barFoo 被添加到哈希表中。

var o = { bar: 'barTest' };
o.foo = 'fooTest';

var prevKey = '';
for(key in o)
{   
    prevKey = prevKey + '' + key ;
    alert(key + ': ' + o[key]);
}

o[prevKey] = "barFooTest";
于 2012-09-02T18:45:36.207 回答
0

这是不可能的,你可以做的是使用 json 对象:

var myvars = {
   'firstVariable': 1,
   'secondVariable': 2,
   'firstVariablesecondVariable': function() { return this['firstVariable'] + this['secondVariable']; }
};


console.log(myvars['firstVariable'+'secondVariable']());
​

运行代码

用于编辑

var elements = [];
var myformat = function(n) { return (String(n).length == 1 ? '0' : '') + n; }
$('div').each(function(i, el) {
    elements.push(myformat(i));
});

console.log(elements);
​
// response ["00", "01", "02"] 

运行代码

编辑二

但如果你想为变量设置值,你可以试试这个:

var elements = {}; // <- object
var myformat = function(n) {
    return (String(n).length == 1 ? '0' : '') + n;
}
$('div').each(function(i, el) {
    elements[myformat(i)] = el;
});

console.log(elements);​

Object
00: HTMLDivElement
01: HTMLDivElement
02: HTMLDivElement

运行代码

于 2012-09-02T18:41:34.697 回答