在没有任何附加组件的Safari浏览器(实际上大多数其他浏览器也是如此),console.log会显示对象在执行的最后状态,而不是console.log被调用时的状态。
我必须克隆对象才能通过console.log输出它,以获取该行代码中对象的状态。
示例:
var test = {a: true}
console.log(test); // {a: false}
test.a = false;
console.log(test); // {a: false}
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果我想查看它在记录时的状态,我通常会将其转换为JSON字符串。
我认为你正在寻找
console.dir()。console.log()不能实现你想要的功能,因为它打印的是对象的引用,而在你打开它时,它已经发生了变化。console.dir在调用时会打印对象的属性目录。下面的JSON想法是个好主意;你甚至可以继续解析JSON字符串并获得一个可浏览的对象,就像.dir()会给你的那样:
console.log(JSON.parse(JSON.stringify(obj)));