微信小程序
微信小程序对象使用注意事项,小程序对象引用传递
11-29 14:32适用于此类场景:
初始在data中定义了一组或多组多维对象,还有一个或多个数组,程序运行时,把这些对象和数组拼起来,组合一个新的多维数组,举一个简单的例子,如下图

新组成的对象,渲染数据没有任何问题,但若用在交互过程中有极大隐患。
容易出现的问题:渲染数据后,修改某个元素的值,最底层的同名字段也会被改,已经渲染过的key和value也会被修改
举个例子说明:在上面的代码中,要修改:Tmp['AA']['aa']['mm'] 的值,即使准确锁定的到这个字段,但结果是,只要底层的key是“mm”,均被修改,哪怕其它的上级字段不是AA。
解决办法:
存在这个问题,是因为新对象的不同元素中,同时使用“Obj”了对象做为子元素,在尝试创建好新对象后,仅修改“Obj”对象内的某个值时,新对象的值也被修改。
那么可以得出结论,这种修改可能是“改地址”级别的,即:引用传递。
所以要解决这种问题,最好是动态创建新对象时,子对象每次也要重新生成,这样可以保证每个看上去虽然相同,但却出自不同之手。

简单的一个小问题,了解之后可以少走很多弯路,节省开发时间。
微信小程序