Я пытаюсь поместить все мои файлы backbone.js в анонимные закрытия javascript, чтобы я мог немного лучше структурировать свой код и интегрировать require.js в будущем.
Вот пример того, что яя пытаюсь сделать (показаны только 2 файла, но я хочу сохранить ту же структуру для остальных):
main.js ДО:
Backbone.View.prototype.close = function () {
console.log('Closing view ' + this);
if (this.beforeClose) {
this.beforeClose();
}
this.remove();
this.unbind();
};
var AppRouter = Backbone.Router.extend({
initialize: function() {
$('#header').html( new HeaderView().render().el );
},
...etc etc
main.js ПОСЛЕ (с анонимным закрытием):
(function(AppRouter){
Backbone.View.prototype.close = function () {
console.log('Closing view ' + this);
if (this.beforeClose) {
this.beforeClose();
}
this.remove();
this.unbind();
};
//HERE, no way to instantiate AppRouter, won't work
var app = new AppRouter();
initialize: function() {
$('#header').html( new HeaderView().render().el );
},
...etc etc
})(app);
app-router.js ДО
var AppRouter = Backbone.Router.extend({
initialize: function() {
$('#header').html( new HeaderView().render().el );
},
...etc etc
app-router.js ПОСЛЕ (с анонимным закрытием)
(function(){
var AppRouter = Backbone.Router.extend({
initialize: function() {
$('#header').html( new HeaderView().render().el );
},
...etc etc
})(AppRouter);
, поэтому app-router.js включен перед main.js, почему объект AppRouter 'undefined' в моем коде main.js?Я никак не могу создать экземпляр этого объекта.