日常开发中经常会需要console来查看当前对象的值。当然用debugger会更全面的查看,但是总有只喜欢用console的,比如我→_→
console出正确的值
我们直接来看这一段代码
var obj = {
name: '小傻子',
age: 12
}
console.log(obj)
obj.name = '大傻子'
很明显我在第四行的位置添加了console
是想查看obj在第四行的时候的值。
但是结果并不如意会打印出
{name: "大傻子", age: 12}
究其原因,是因为obj为引用型变量,console
后面的操作同样会影响到console
的内容。
我们看一下这一段代码
var obj = {
name: '小傻子',
age: 12
}
console.log(obj.name)
obj.name = '大傻子'
这个时候打印的结果就是预期的小傻子
解决方案
我们不可能去打印obj的所有属性,因为这是不现实的。我们还是希望打印obj
但是得到在当前位置的结果,我下面贴出自己的解决方案
console.log(JSON.parse(JSON.stringify(obj)))
通过JSON
的方法进行深拷贝是我知道的最简单有效的方法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。