【发布时间】:2020-05-26 07:19:12
【问题描述】:
我使用具有嵌套数据的 API。数据在小页面中发送(一次
JSON -> JS -> ImmutableMap -> JS
所以我更喜欢使用原生 JS。缺点是不可变 JS 的 API 对于使用 getIn() 检索地图中的字段非常方便。对于原生 JS,我使用方括号来访问嵌套对象字段。
const A = { B : { C: D }};
const d = A['B']['C'];
这可能非常冗长。我不确定不可变 JS 是否为我的用例提供了更好的性能。它不是一个大的对象映射,我认为从 JS 转换为不可变回到 JS 会有一些开销。但是,我也不确定使用方括号访问嵌套对象属性的防御性。
【问题讨论】:
-
const d = A.B.C呢? -
我不确定在尝试访问无效字段时点运算符和方括号的处理方式是否存在差异,或者性能是否存在差异。
-
两者都会告诉你“无法读取未定义的属性'X'
-
你也可以探索解构:
const { B: { C: d }} = A -
检查我的答案