我这里有这个代码:
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名称。
答案 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'