因为主要做Android开发,最近接触hybrid开发,遇到一些问题,在此记录一下。
前端开发中console是经常使用的调试工具,但某次开发中发现打印的值(对象)和我实际请求的值不相符(所打印对象的属性展开前后是不一样的),不知道朋友们有没有遇到过相同的问题。当时还很奇怪,为什么会这样呢!
后来想想也很好理解,调试工具也是渲染出来的,打印的log是一个对象,没有展开时打印的是原始值,在展开查看详细属性值时,页面会重新渲染,就会从内存中取出当前值,如果之前这个值被修改了,那么现在就会打印修改后的值,所以打印对象的值展开和隐藏是不同的。
浏览器调试工具的控制台和Android studio的控制台是不同的,浏览器的控制台其实和自己开发的程序是运行在相同的环境下的,也就是有相同的上下文。所以我们才能在控制台打印对象,动态修改对象的值。如果在控制台想要看初始值可以把对象转换成json串以后打印出来。