Quais são esses padrões neste exemplo de Backbone TodoMVC

Olhando para oexemplo de códigos de backbone todomvc. A estrutura no 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();
});

collections / todos.js

var app = app || {};

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

models / todo.js

var app = app || {};

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

views / app-view.js

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

Eu tenho duas perguntas:

porquevar app = app || {} em cada arquivo?

Quais são as diferenças entre$(function(){}), (function(){})()e(function($))(jQuery)?

questionAnswers(2)

yourAnswerToTheQuestion