Итак, есть вопросы по S.O. ответьте, как проверить, существует ли свойство на объекте. Пример Ответ заключается в использовании Object.prototype.hasOwnProperty()
.
Однако как вы можете проверить свойство потенциально undefined объекта?
Если бы нужно было попытаться только непосредственно проверить, если свойство существует на объекте undefined, то это будет ссылка ошибка.
Семантически, лучше проверить код непосредственно if (obj.prop) //dosomething
- он показывает более четкое намерение. Есть ли способ достичь этого? Предпочтительно, есть ли встроенный Javascript-метод для выполнения такой вещи или по соглашению?
Мотив: Пакет добавляет свойство user.session.email - но я проверяю, существует ли почта, а не сеанс, хотя сеанс может быть несуществующим.
Обновление:. Многие ответы говорят об использовании && оператора для короткого замыкания. Я знаю, что это возможное решение, но это не совсем то, что нужно, поскольку кажется, что мы работаем над внешним синтаксисом объекта JS - то есть, хотя вы хотите действительно проверить свойство на объекте, вы вынуждены проверять, существует ли объект для этого.
Примечание для маркировки как закрытого. Почему это было отмечено как закрытое? Ссылка, которая предполагает, что это дубликат, может не дать одинаковых ответов. Мы ищем лучшее, более семантическое решение и отмечаем это закрытое предположение "вложенное" === "потенциально undefined"?