console.log打印后的数据不符合预期
不符合预期:
let obj = {
value:{
value:999
}
}
console.log(obj.value);//{value: 999},但是点击展开有,value却是0
obj.value.value = 0
console.log(obj.value);//{value: 0}
//猜测,因为obj是引用类型,并且第一个value也是引用类型
//当第一次打印时,还未对value进行操作,打印出来的时符合预期的
//但时点击展开时,是按照引用地址去找存储位置,引用地址没有发生改变,此时是已经对value做过操作的
//所以找到的是改变后的value:0;不是999是正常的;
验证:
//若符合猜测,则第一个console.log(obj.value);打印的value值是999,第二次打印的是0,并且点击展开后,value的值不会改变
//因为这里我们把引用地址换了
let obj = {
value:{
value:999
}
}
console.log(obj.value);
obj.value = {
value:0
}
console.log(obj.value);
//验证成功