Что такое "var app = app || {};" делать?
Я просматриваю некоторые примеры Backbone.js, и они имеют var app = app || {};
в верхней части всех .js файлов. Я понимаю буквальное значение этого, но что он делает со ссылкой на все остальное?
Изменить: вы, ребята, действительно очень быстро.
Ответы
Ответ 1
Он определит переменную app
для пустого объекта, если он еще не определен.
Это работает, потому что undefined оценивает false
в Javascript.
Если он определен, он все равно может быть переопределен как пустой объект, если он имеет значение, которое вычисляется до false
, например пустая строка.
Ответ 2
Оператор ||
в javascript вернет первый операнд, если он "правдивый". Если нет, он вернет второй операнд. Если app
не назначено, это будет undefined
, что является "ложным". Таким образом, если он не определен или иначе не установлен, пустой объект {}
будет присвоен app
.
Ответ 3
Это означает "определить приложение как пустой объект, если он еще не определен.
Оператор OR
в JavaScript
не обязательно дает a boolean
. Если левая часть выражения дает false
, то присваивание принимает правую часть выражения.
Ответ 4
Если app
уже определен, он ничего не делает.
Если app
не определено, то это эквивалентно var app = {};