修改对象对应key的value
最近遇到一个特别逗的问题:
当我想写一个方法去修改对象中一些key的对应值时,我想让这个方法变得更灵活,
所以我把需要改的键值对完全由外面传入。
var obj = {}
refreshForm(prop,val) {
obj.prop = val
}
refreshForm(key1,val1)
骚操作来了,我拿到的prop和val都没有问题,但结果却和我预想的不一样,
运行的结果是对象中新创建的一对键值对{prop:val1}.
这里使用的点方法,它并没有去深究prop的具体值,而是直接把它当成是一个属性名,如果对象中没有这个key,对象会自动帮你创建一个新的键值对来存储数据。
解决办法:老老实实遍历对象去赋值。
本文探讨了在JavaScript中使用动态属性名进行对象赋值时的常见错误,通过实例展示了直接使用点语法可能导致的问题,并提供了正确的遍历赋值方法。
710

被折叠的 条评论
为什么被折叠?



