我发现自己反复输入此内容以在代码中进行调试。有没有办法为此创建函数?
var abc = 1
console.log("abc = "+abc);
var xyz = 2;
console.log("xyz = "+xyz);
我想创建一个像这样的函数:
logVar = function(input){
console.log(input.name()+" = "+input);
}
有没有办法做到这一点?
logVar(abc)应该返回“ abc = 1”
logVar(xyz)应该返回“ xyz = 2”
答案 0 :(得分:7)
您必须将var封装在一个对象中才能获得其名称作为键:
var myVar = 'John Doe';
console.log({myVar}); // result {"myVar": "John Doe"}
答案 1 :(得分:3)
您可以根据传递给logVar
的变量创建对象。然后,在函数中,可以使用Object.entires
获取变量的名称和变量的值。 / p>
请参见以下示例:
var logVar = function (input) {
var [[name, val]] = Object.entries(input);
console.log(name, "=", val);
}
var abc = 1;
var xyz = 2;
logVar({abc}); // abc = 1
logVar({xyz}); // xyz = 2
答案 2 :(得分:0)
尽管这不是一个合适的解决方案,但是您可以在window对象上循环,但也可以获取其他标识符,这些标识符具有与传入参数相同的值。这仅在全局范围内有效,而在函数范围内无效。
{{1}}
答案 3 :(得分:-1)
这应该有效:
var abc = 1;
logVar = function(input) {
console.log(input);
}
logVar({
abc
});
输出应类似于:{abc:1}