我很想知道檢查子節點是否存在的最佳實踐方法。檢查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