微信公开课
微信公开课小程序热门讨论关于「Page自定义属性无法清空」的小程序开发问题
补充:Page自定义属性无法清空
展开:当前Bug的表现在data属性的同级目录定义一个一样的属性myProperty,然后在里面使用对象初始化,发现即便在unload里将该属性中的内容清空,第二次加载还是会出现清空前的内容(下图中标志位置,应该是初始值,不应该是修改置)预期表现页面已经销毁后,第二次加载,不应该保留上次的内容复现路径1点击代码片段的跳转按钮,跳转到index2页面2点击返回按钮3点击代码片段的跳转按钮,跳转到index2页面4问题出现提供一个最简复现Demohttps:developersweixinqqcomsTCahlsmD7n4i即速小程序:问题已经大致想明白了把代码分解一下varp={xxxxmyProperty:{info:myObj}data:{xxxx}}Page(p)其实p就是一个全局变量,p参数传给Page后,Page会复制一份(浅复制),所以如果第一次修改myObj里面的值后,p也跟着改了,第二次再初始化相当于用了修改后的p作为参数(就是对象一样,只是对象里面引用的对象里的值改变了)当然还有个推断结果,发现data应该是深度复制的,因为上面的info如果放到data里是没问题的:Page()只在register时候初始化你的myProperty就一次,你就当做单例模式来看吧:跟前两天霄霄大神教育我的差不多vara={value:1}consolelog(a)avalue=2
更多有关「Page自定义属性无法清空」的讨论可以前往微信公开课小程序参与互动哦!了解更多