JS:获取var名称

时间:2014-02-16 13:39:07

标签: javascript

我这里有这个代码:

var myVar = 'this is a string';

我想获取变量名myVar的字符串表示。这是一个非常简单的例子。显然我们知道它是myVar,但它证明了我的需要。

我需要运行这样的函数:

function getVarName(v) {
    return v.blah;
}
var nameOfVar = getVarName(myVar); //should  'myVar'

这可能吗?我不担心跨浏览器,这是一个firefox插件所以我可以使用最新的> = ES5。

由于

编辑:我想添加我这样做的原因,它是在firefox系统中转储一些对象,它可以帮助我制作插件。我知道对象中的键/值,但是如果函数在一个字符串或一些非对象上运行,那么知道它运行的var名称会很好。它会自动运行一堆东西,所以我不知道var名称。

3 个答案:

答案 0 :(得分:1)

这是不可能的。它不会像在方法调用中那样发送。

getVarName("var");

function getVarName(variableName) {
  /* this would be var */
}

该函数对该变量有自己的参数。但是,您可以获取该变量中的值。

答案 1 :(得分:1)

这不是变量在JavaScript中的工作方式。

如果要维护字符串到值的映射,请使用对象:

values = { myVar: 'this is a string' }

答案 2 :(得分:0)

我知道您提到过您不希望涉及对象。但是看看这个:

const getVarName = (variable) => {
  let varName = '';
  for (let key in variable) varName = key;
  return varName;
}

const myVar = 'some string';

// Place your string inside curly braces
const nameOfVar = getVarName({myVar}); 

console.log(nameOfVar); // output: 'myVar'