Шаблон для этого, который мне нравится, - это изменение конструктора и добавление некоторых дополнительных функций:
// App View
var AppView = Backbone.View.extend({
constructor: function(){
this.events = _.result(this, 'events', {});
Backbone.View.apply(this, arguments);
},
_superEvents: function(events){
var sooper = _.result(this.constructor.__super__, 'events', {});
return _.extend({}, sooper, events);
}
});
// Parent View
var ParentView = AppView.extend({
events: {
'click': 'onclick'
}
});
// Child View
var ChildView = ParentView.extend({
events: function(){
return this._superEvents({
'click' : 'onclickChild'
});
}
});
Я предпочитаю этот метод, потому что вам не нужно указывать родительскую переменную, которая меньше,Я использую ту же логику для attributes
и defaults
.