Уловка typeof
решает проблемы, когда глобальная undefined
была перезаписана или когда переменная не была объявлена.
В вашем случае вы просто проверяете наличие свойства в App
объекте. Пока существует App
, не должно быть проблем с объявлением.
Если есть вероятность, что какой-то код перезапишет undefined
, тогда вам нужно typeof
.
Еще один способ проверки свойства:
if ( !('errorLog' in App) ) {
App.errorLog = [];
}
Здесь также будут рассмотрены члены prototype
, что эквивалентно проверке undefined
, и обойдется проблема перезаписи undefined
.