我有一个我希望扩展的骨干类(它本身已扩展)。该类有一个选项对象。 在扩展类中,我想覆盖选项对象的一个字段。
BaseClass = Backbone.View.extend({
options: {
width: 800,
height: 600,
wantToOverride: {...}
},
...
events: {
'mousedown' : 'onMouseDown'
}
}
DerivedClass = BaseClass.extend({?????})
实现这一目标的最佳方法是什么?
此外,在新课程中我想添加一个事件,我该怎么做?
答案 0 :(得分:1)
父options
将在DerivedClass.__super__.options
上可用,constructor
在其他任何内容之前运行,因此您可以根据自己的方法组合对象。例如:
DerivedClass = BaseClass.extend({
options: {
wantToOverride: 'foo'
},
events: {
'click': 'onClick'
},
constructor: function() {
var parentOptions = this.__super__.options,
parentEvents = this.__super__.events;
this.options = _.extend({}, parentOptions, this.options);
this.events = _.extend({}, parentEvents, this.events);
}
});
如果许多类都会发生这种情况,你可能想要用这个构造函数设置一个基类,并让一切都继承它。