适用于此类场景:
初始在data中定义了一组或多组多维对象,还有一个或多个数组,程序运行时,动态把这些对象和数组拼起来,组合一个新的多维数组,举一个简单的例子,如下图
新组成的对象,渲染数据没有任何问题,但若用在交互过程中有极大隐患。
容易出现的问题:修改某个最底层元素的值,最后的结果是整个对象中,同级并且key相同的value都被修改。
举个例子说明:在上面的代码中,要修改:Tmp['AA']['aa']['mm'] 的值,即使准确锁定到这个元素中,但结果是,只要底层的key是“mm”,均被修改。
解决办法:
存在这个问题,是因为新对象的不同元素中,同时使用“Obj”了对象做为子元素,在尝试创建好新对象后,仅修改“Obj”对象内的某个值时,新对象的值也被修改。
那么可以得出结论,这种修改可能是“改地址”级别的。
所以要解决这种问题,最好是动态创建新对象时,子对象每次也要重新生成,这样可以保证每个看上去虽然相同,但却出自不同之手。
简单的一个小问题,了解之后可以少走很多弯路,节省开发时间。