如何同时记录变量及其名称?

时间:2019-06-24 13:35:16

标签: javascript

我发现自己反复输入此内容以在代码中进行调试。有没有办法为此创建函数?

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”

4 个答案:

答案 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}