我无法弄清楚如何自定义console.log(),以便自动打印出我传入其中的每个参数的标签。例如,我经常做这样的事情,因此很清楚每个日志的打印内容:
console.log('firstName: ', firstName);
我希望能够将其简化为:
my.log(firstName);
有没有办法将调用者args的变量名称传递给console.log()
?或者还有另一种方法吗?我的愿望是我不必两次输入变量名,只需输入一次。理想情况下,在控制台中打印出多个参数,每个参数都有自己的标签。我知道我可以访问参数列表,但我不知道如何取消eval()每个参数只获得它的变量名,如果这有意义的话。我希望这是我错过的超级容易的东西。
答案 0 :(得分:3)
您可以使用console.table()以更易读的形式打印内容:
(在真正的控制台中查看它。)
var obj = {
firstName: "name",
lastName: "smith"
};
function log(obj) {
console.table(obj);
}
log(obj);

答案 1 :(得分:3)
按照你想要的方式做到这一点是不可能的(日志功能不知道你叫什么名字。)
我解决这个问题的方法是使用对象简写{firstName}
来创建一个临时对象。
然后,您可以使用.log
或.table
来显示它:
const firstName = 'bob';
console.log({firstName});
console.table({firstName});
// It also works for multiple variables:
const lastName = 'smith';
console.log({firstName, lastName});

答案 2 :(得分:0)
试试这个:
var my = {
log : function(name) {
console.log('firstName: ', name);
}
};
my.log("Rohit");