Подтвердить что ты не робот

Что такое "var app = app || {};" делать?

Я просматриваю некоторые примеры Backbone.js, и они имеют var app = app || {}; в верхней части всех .js файлов. Я понимаю буквальное значение этого, но что он делает со ссылкой на все остальное?

Изменить: вы, ребята, действительно очень быстро.

4b9b3361

Ответ 1

Он определит переменную app для пустого объекта, если он еще не определен.

Это работает, потому что undefined оценивает false в Javascript.

Если он определен, он все равно может быть переопределен как пустой объект, если он имеет значение, которое вычисляется до false, например пустая строка.

Ответ 2

Оператор || в javascript вернет первый операнд, если он "правдивый". Если нет, он вернет второй операнд. Если app не назначено, это будет undefined, что является "ложным". Таким образом, если он не определен или иначе не установлен, пустой объект {} будет присвоен app.

Ответ 3

Это означает "определить приложение как пустой объект, если он еще не определен.

Оператор OR в JavaScript не обязательно дает a boolean. Если левая часть выражения дает false, то присваивание принимает правую часть выражения.

Ответ 4

Если app уже определен, он ничего не делает. Если app не определено, то это эквивалентно var app = {};