微信小程序

微信小程序对象使用注意事项,小程序对象引用传递

11-29 14:32

适用于此类场景:

初始在data中定义了一组或多组多维对象,还有一个或多个数组,程序运行时,把这些对象和数组拼起来,组合一个新的多维数组,举一个简单的例子,如下图

小程序对象介绍.png


新组成的对象,渲染数据没有任何问题,但若用在交互过程中有极大隐患。

容易出现的问题:渲染数据后,修改某个元素的值,最底层的同名字段也会被改,已经渲染过的key和value也会被修改


举个例子说明:在上面的代码中,要修改:Tmp['AA']['aa']['mm'] 的值,即使准确锁定的到这个字段,但结果是,只要底层的key是“mm”,均被修改,哪怕其它的上级字段不是AA。


解决办法:

存在这个问题,是因为新对象的不同元素中,同时使用“Obj”了对象做为子元素,在尝试创建好新对象后,仅修改“Obj”对象内的某个值时,新对象的值也被修改。

那么可以得出结论,这种修改可能是“改地址”级别的,即:引用传递。


所以要解决这种问题,最好是动态创建新对象时,子对象每次也要重新生成,这样可以保证每个看上去虽然相同,但却出自不同之手。

小程序自组对象.png


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


微信小程序
大潇博客 版权所有 Copyright ©2016~2026
京ICP备17004217号-6  合作QQ:284710375
天玺科技