4

日常开发中经常会需要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的方法进行深拷贝是我知道的最简单有效的方法


zuank
203 声望10 粉丝

引用和评论

1 篇内容引用
0 条评论