【发布时间】:2019-02-11 02:58:05
【问题描述】:
当使用点表示法访问嵌套对象时,我总是必须确保前一个对象存在,这很累人。
我基本上想避免长链像
if (a && a.b && a.b.c && a.b.c[0] ... ) { v = a.b.c[0]; }
我能想到的唯一另一件事是使用 try catch。
var v; try { v = a.b.c[0].d.e; } catch (e) {}
有更好的模式吗?
【问题讨论】:
-
我想到了一个递归函数... 思考
-
@tymeJV 我在这里看不到任何递归:)
-
不可能在不引起异常的情况下预先询问 a.b(例如 a.b.c 抛出异常)。
-
您通常应该避免串接这么多电话。创建一种方法来做你想做的事,而不是破坏火车c2.com/cgi/wiki?TrainWreck
-
@elimirks 问题是我在访问时别无选择,例如解码的 JSON 对象。这不是设计决定。
标签: javascript