我很想知道检查子节点是否存在的最佳实践方法。检查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个元素,让所有这些if语句将不会是一个可行的解。
所以我倾向于做的是把这个地段包装在try
。
try {
var test = object.child.element.foo.bar;
} catch (error) {
console.log(error);
}
so test
只有存在child,element和foo节点时才会存在。
有没有比这更好的模式使用?
我更喜欢前一种方法,并避免设计太多if语句来避免它。如果我需要'object.child.element.foo.bar',我会调用'object.getBar()'(它在内部检查一个空的'child'并返回'child.getBar()'或null,等等。)。 – Brian