获取输入变量的名称(如 Function.name)
get name of input variable (like Function.name)
我有一个 Function
,我想在其中检索用于调用该函数的变量的名称。我该怎么做?
let fooVar = 3;
let barVar = "hello World";
function doStuff(variable) {
let varName = ???; // retrieve name of variable
return varName + ": " + variable;
}
document.write(doStuff(fooVar)); // should output "fooVar: 3"
document.write(doStuff(barVar)); // should output "barVar: hello World"
如果 variable
是 Function
,我可以使用 variable.name
。
我知道 this,但它只会 return "variable"
,而不是放入函数中的变量的名称。
作为替代方案:有没有一种方法可以在声明变量时自动调用某个函数?如果可能的话,我会使用上面 link 中给出的方法将变量名添加到映射中,然后在函数内部使用该映射来检索变量名。
这实际上是不可能的,作为解决方法,您可以这样做
let fooVar = { name: 'fooVar', value: 3 };
let barVar = { name: 'barVar', value: 'Hello World' };
function doStuff({ name, value }) {
let varName = name; // retrieve name of variable
return varName + ": " + value;
}
console.log(doStuff(fooVar)); // should output "fooVar: 3"
console.log(doStuff(barVar));
或者你也可以
let fooVar = 3;
let barVar = 'Hello World';
function doStuff(variable) {
const arr = Object.entries(variable)[0];
const [name, value] = arr;
let varName = name; // retrieve name of variable
return varName + ": " + value;
}
console.log(doStuff({ fooVar })); // should output "fooVar: 3"
console.log(doStuff({ barVar }));
我有一个 Function
,我想在其中检索用于调用该函数的变量的名称。我该怎么做?
let fooVar = 3;
let barVar = "hello World";
function doStuff(variable) {
let varName = ???; // retrieve name of variable
return varName + ": " + variable;
}
document.write(doStuff(fooVar)); // should output "fooVar: 3"
document.write(doStuff(barVar)); // should output "barVar: hello World"
如果 variable
是 Function
,我可以使用 variable.name
。
我知道 this,但它只会 return "variable"
,而不是放入函数中的变量的名称。
作为替代方案:有没有一种方法可以在声明变量时自动调用某个函数?如果可能的话,我会使用上面 link 中给出的方法将变量名添加到映射中,然后在函数内部使用该映射来检索变量名。
这实际上是不可能的,作为解决方法,您可以这样做
let fooVar = { name: 'fooVar', value: 3 };
let barVar = { name: 'barVar', value: 'Hello World' };
function doStuff({ name, value }) {
let varName = name; // retrieve name of variable
return varName + ": " + value;
}
console.log(doStuff(fooVar)); // should output "fooVar: 3"
console.log(doStuff(barVar));
或者你也可以
let fooVar = 3;
let barVar = 'Hello World';
function doStuff(variable) {
const arr = Object.entries(variable)[0];
const [name, value] = arr;
let varName = name; // retrieve name of variable
return varName + ": " + value;
}
console.log(doStuff({ fooVar })); // should output "fooVar: 3"
console.log(doStuff({ barVar }));