Что это за паттерны в этом примере Backbone TodoMVC?

Глядя вПример магистральных кодов todomvc, Структура в js / fold:

├── app.js
├── collections
│   └── todos.js
├── models
│   └── todo.js
├── routers
│   └── router.js
└── views
    ├── app-view.js
    └── todo-view.js

app.js

var app = app || {};
$(function () {
    'use strict';
    // kick things off by creating the `App`
    new app.AppView();
});

Коллекции / todos.js

var app = app || {};

(function () {
    'use strict';
    var Todos = Backbone.Collection.extend({
    model: app.Todo,
    app.todos = new Todos();
})();

Модели / todo.js

var app = app || {};

(function () {
    'use strict';
    app.Todo = Backbone.Model.extend({
    });
})();

просмотры / приложение-view.js

var app = app || {};
(function ($) {
    'use strict';
    app.AppView = Backbone.View.extend({
})(jQuery);

У меня есть два вопроса:

Зачемvar app = app || {} в каждом файле?

Каковы различия между$(function(){}), (function(){})(), а также(function($))(jQuery)?

Ответы на вопрос(2)

Ваш ответ на вопрос