可能重复:
获取变量名。javascript“反射”
有没有办法知道变量的名称?
例子:
var a = 1;
var b = 4;
function getName(param){
//What should I return here?
}
我想做的是,如果我打电话,则getName
返回“a”,如果我打电话getName(a)
,则返回“b”getName(b)
这可能吗?
可能重复:
获取变量名。javascript“反射”
有没有办法知道变量的名称?
例子:
var a = 1;
var b = 4;
function getName(param){
//What should I return here?
}
我想做的是,如果我打电话,则getName
返回“a”,如果我打电话getName(a)
,则返回“b”getName(b)
这可能吗?
不,这是不可能的,我非常怀疑这是否有一个有用的用例。
您可以更改对象的原型以添加一个函数来执行此操作,如此StackOverflow 答案中所述:
Object.prototype.getName = function() {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
无法获取变量 name。但是你可以得到变量的名称,谁得到了这个值(如果你有一些具有相等值的变量,你会首先定义)。此函数仅适用于全局变量。
var a = 1;
var b = 4;
function test(value) {
for (var x in window)
if (window[x] === value)
return x;
}
alert(test(b));