Я думаю, что 2 набора скобок немного сбивают с толку, но я видел другое использование в примере с Google, они использовали что-то похожее, надеюсь, это поможет вам лучше понять:
var app = window.app || (window.app = {});
console.log(app);
console.log(window.app);
, поэтому, если windows.app
не определено, то window.app = {}
выполняется немедленно, поэтому window.app
присваивается {}
во время оценки состояния, поэтому результат как app
, так и window.app
теперь становится {}
, поэтому вывод консоли:
Object {}
Object {}