時間的理智,再次我不得不面對這樣的代碼考慮下列假設的例子:檢查JSON對象
if (node.data.creatures.humans.women.number === Infinity) {
// do-someting
}
現在,問題是,如果節點是未定義這個條件將打破。同樣,如果node.data未定義,node.data.creatures未定義等,則會中斷。
所以我最終使用了以下種類的長期條件:
if (node && node.data && node.data.creatures && node.data.creatures.humans && node.data.creatures.women && node.data.creatures.humans.women.number === Infinity) {
// do-someting
}
現在,想象一下我必須使用JSON對象的部分在代碼的其他許多地方也。
代碼突然開始顯得非常難看。有沒有更好的方法來避免由於我提到的第一個條件導致的「無法調用未定義的屬性」類型的錯誤,以便代碼看起來更好。
你如何處理這種情況?
新的代理API(相當新,支持有限)可以輕鬆解決他的:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Proxy – haim770
作爲一個說明,它是一個JavaScript對象而不是_JSON object_。數據的JSON表示,如果以JSON格式解析數據,您將得到一個JavaScript對象作爲結果。 –