Что означает этот код JavaScript? Что это оценивает и что делают круглые скобки?
/**
* View Controller
* @type {Object}
*/
var controller = controller || {};
Чтобы избежать путаницы, я буду использовать разные имена переменных:
var controller = cont || {};
Это выражение проверяет значение cont
и если оно не undefined
, оно назначит {}
или пустой объект для controller
. Если cont
имеет значение, controller
будет присвоено это значение.
var controller = controller || {};
Таким образом, это просто означает, что если controller is undefined
как значение по умолчанию {}
, он будет инициализирован этой конкретной переменной.
здесь ||
это просто OR operator
который вы могли бы использовать в условных операторах.
{}
являются литералом пустого объекта. Трубы||
значит "или". Еслиcontroller
существует, этоvar controller = controller;
, если нет, этоvar controller = {};
,controller
в текущей области видимости. Обычно эквивалентноif (!window.controller) { window.controller = {}; }
в браузерах, например.