时间:2019-04-29 来源:小程序工厂
好吧,我刚刚写完问题,就找到原因了。。。
是这样的,因为我需要的属性名是一个变量的原因,我不得不使用defineProperty来给对象定义属性,这样就可以直接把变量的值作为属性而不是变量名被当做属性。但是似乎对对象里的对象属性使用Object.defineProperty的时候,需要强调一下enumerable为true,如果不强调光写value的话,似乎默认会给一个false,因此就导致JSON.stringfy排除了这个属性,那么你存到缓存的时候就根本没存这个属性进去,自然你重载app之后就看不到这个属性了。
为什么会想到这里呢?因为我看控制台忽然发现这个属性是浅色的,我就在想会不会是这个原因,然后又联想到我用defineProperty方法的时候只写了value,其他enumerable,writable这些属性都没有配置,说不定就是这里的原因,结果一试还真是这样!
这个解答留给日后碰到和我一样问题的小伙伴。