Зачем нужна конструкция var App = App || {} в JavaScript?
Привет сообществу!) Простите за такой банальный вопрос. Я относительно недавно начал изучать JS и так сказать периодически смотрю сорц код на разный сайтах , чтобы увидеть как кодят "гуру"... часто в первых строках встречаю:
var App = App || {}
..
App.module = function(){...
App.module2 = function(){...
что она означает дословно я понимаю:
если объект App уже существует, он будет присвоен (ибо все Objects -> truthy values), нет - создан новый
но у меня вопрос: почему так делают.. т.е. когда возможно то, что такой объект уже существует?
типа два раза один js файл подключен?
и почему сразу не создавать новый объект, чтобы он перезаписал старый, если такой есть
ибо строчки ниже var App = ... будут исполнены в любом случае
stackoverflow.com/questions/6439579/what-does-var-... - вот тут хорошо отвечено.
Если в кратце, то допустим у вас один используемый namespace в двух файлах. При инициализации кода из 1 файла вы не находите такой объект и создаете новый, добавляя в него функцию1. Затем инициализируется второй файл, видит что объект уже создан и просто добавляет в него функцию2.
sonic1995: Я прям так и загуглил "javascript var app = app || {}". Попал на вопрос, который был помечен как дубликат другого вопроса, который тоже был помечен как дубликат вопроса, и вот в нем уже я нашел это :)
Если хотите чтобы SO почти всегда вылезал при поиске, то вам надо в настройках гугла указать что вас интересуют англоязычные ресурсы и несколько раз позаходить на SO c популярных вопросов в гугле. Потом гугл поймет что вам нравится этот сайтик и тогда проблем с поиском ответов не будет.
Спасибо большое! но эти ответы на stackoverflow не отображают саму суть сего действия (они просто описывают принцип работы truthy falsy values ). Если кто-то еще наскочит на этот вопрос, исчерпывающий ответ дан по ссылке от Nikolay Talanov.