js这里的for in 循环怎么引用到属性名

/*自定义storejs的一个add方法

  • 用于添加属性,如果属性已经存在,则改变其属性
  • {name:aa}.add{age:b,name:c} ==>{name:c,age:b} *
  • */

114行到attr 我实际上是想要一个对象,它到属性名是 for in里面到那个attr,但是这里建立到对象直接就是 {attr:false} 应该怎么改?怎么区别真正的attr属性和for in里面的这个attr

图片说明

第14行这么改:

 let obj1 = {};
 obj1[attr] = value[attr];

你改下obj1试试:
var content = attr+":"+value[attr];
let obj1 = {content}

什么意思,你示例不就是存在属性名就覆盖对应的值,没存在就新增,不是直接for in覆盖或者对原来的对象操作就行了
for(let attr in value)newObj[attr]=value[attr]

我感觉你这个store.add方法根本不需要用for in 遍历所有属性,直接用Object.assign就可以啊,这个方法本身就是“用于添加属性,如果属性已经存在,则改变其属性”

你可以直接用[]的方式去取值