题目描述
JavaScript两个不同对象的属性如何建立联系?
题目来源及自己的思路
在处理复杂数据的时候有时候需要提取出某一部分来进行使用,那么如何做到不同对象的属性关联呢?
相关代码
例如:
var a = {'aa':1,'bb':[{'ccc':2,'ddd':[{'eeee':3}]}]}; var b = {'ff':''};
如何让对象b中的ff属性和对象a中的eeee对应起来,即:当eeee的值修改的时候ff的值也修改。同样,当ff的值修改的时候,eeee的值也跟着改变?
已解决
悬赏分:0
- 解决时间 2021-11-28 18:58
点赞 0反对 0举报 0
收藏 0
分享 0
回答1
最佳
-
可以借助Object.defineProperty直接代理对象属性来实现
var a = {'aa': 1, 'bb': [{'ccc': 2, 'ddd': [{'eeee': 3}]}]}; var b = {}; Object.defineProperty(b, 'ff', { set(v) { a.bb[0].ddd[0].eeee = v; }, get() { return a.bb[0].ddd[0].eeee; }, }); b.ff = 123; console.log('b->', b.ff); // 123 console.log('a->', a.bb[0].ddd[0].eeee); // 123
把这段代码复制到控制台修改b.ff的值就能看到效果
当然,用Proxy来实现也是一样的支持 0 反对 0 举报2021-11-28 08:54