为了账号安全,请及时绑定邮箱和手机立即绑定

es6或js动态的修改对象属性,并将对象加入数组,不能得到预期的结果。

es6或js动态的修改对象属性,并将对象加入数组,不能得到预期的结果。

收到一只叮咚 2018-12-29 16:14:39
首先,我有个按钮点击事件,点击该按钮后,触发addText方法,方法的意思大概是为对象lib.categories.Texts[0]添加textId属性,并将对象加入到dataText数组,其中id初始值是0,每次点击完事件后都+1,该方法运行在vue环境中:addText(){            let shapes = lib;            Object.defineProperties(lib.categories.Texts[0], Object.getOwnPropertyDescriptors({'textId':id}));            this.dataText.push(lib.categories.Texts[0]);            id++;            console.log(this.dataText)        },但是结果却是这样的我希望的是数组第一个对象里的textId为0,第二个textId为1 当然我执行了对象的浅拷贝也是出现一样 Object.assign(lib.categories.Texts[0],{'textId':id});各位大神们有什么更好的思路或方法去实现这个功能么?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

对象引用导致的吧
`
Object.assign({}, lib.categories.Texts[0],{'textId':id});
`
每次创建一个新对象

查看完整回答
反对 回复 2019-01-22
  • 1 回答
  • 0 关注
  • 1664 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信