Мне интересно узнать, какой метод наилучшей практики проверяет, существует ли дочерний узел.Каков наилучший способ проверить, существует ли дочерний узел в javascript?
var object = {}
позволяет сказать, что я хотел получить доступ: object.child.element
он вернется бы:
Uncaught TypeError: Cannot read property 'element' of undefined
потому что child
не определено.
я мог проверить каждый узел определяются первым:
if (object.child) {
object.child.element
}
так что бы избежать TypeError
, как object.child
должен быть undefined
, но если бы мы сказать 5 элементов, имея все это, если заявления не будут жизнеспособными решение.
Итак, что я обычно делаю, это обернуть участок в try
.
try {
var test = object.child.element.foo.bar;
} catch (error) {
console.log(error);
}
так test
будет существовать только при наличии ребенка, элементов и узлов Foo.
Есть ли лучший образец, чем это использовать?
Я предпочитаю прежний подход, и я избегаю слишком большого количества утверждений, разработанных, чтобы избежать этого. Если мне нужно 'object.child.element.foo.bar', я вызову для' object.getBar() '(который внутренне проверяет нулевой' child' и возвращает либо 'child.getBar()', либо null, и т.д.). – Brian