如何在 JavaScript 中知道变量的名称

How to know the name of a variable in JavaScript?

本文关键字:变量 JavaScript      更新时间:2023-09-26

可能的重复项:
获取变量名称。JavaScript "Reflection"

有没有办法知道变量的名称?

例:

var a = 1;
var b = 4;
function getName(param){
    //What should I return here?
}

我想做的是,如果我调用getName(a),则返回getName"a",如果我调用getName(b)则返回"b"

这可能吗?

不,这不可能以干净的方式进行,我非常怀疑是否有有用的用例。

您可以更改对象的原型以添加一个函数来执行此操作,如以下 StackOverflow 答案中所述:

Object.prototype.getName = function() { 
   var funcNameRegex = /function (.{1,})'(/;
   var results = (funcNameRegex).exec((this).constructor.toString());
   return (results && results.length > 1) ? results[1] : "";
};

无法获取变量名。但是你可以得到变量的名字,谁得到了这个值(如果你得到一些值相等的 vairable,你会得到第一个定义)。此函数仅适用于全局变量。

var a = 1;
var b = 4;
function test(value) {
  for (var x in window)
    if (window[x] === value)
      return x;
}
alert(test(b));