如何使控制台.log显示对象的当前状态?

在没有加载项的 Safari 中(实际上大多数其他浏览器也是如此),将在上次执行状态下显示对象,而不是在调用时的状态下显示对象。console.logconsole.log

我必须克隆对象才能通过来输出它,以获得该行处对象的状态。console.log

例:

var test = {a: true}
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}

答案 1

我想你正在寻找.console.dir()

console.log()不会执行你想要的操作,因为它打印了对对象的引用,当你打开它时,它已更改。 在调用对象时打印对象中属性的目录。console.dir

下面的JSON想法很好;您甚至可以继续解析JSON字符串并获取一个可浏览的对象,就像.dir()会给你的一样:

console.log(JSON.parse(JSON.stringify(obj)));


答案 2

如果我想看到它在记录时的状态,我通常会做的是,我只是把它转换为JSON字符串。

console.log(JSON.stringify(a));