在Marionette中,如何在不覆盖原始函数的情况下在视图的父对象上调用同名函数?
例如:
var someView = new Backbone.Marionette.ItemView.extend({
onRender: function () {
console.log('foo');
}
});
var anotherView = someView.extend({
onRender: function () {
// call someView's original onRender function
console.log('bar');
}
});
anotherView.render();
导致控制台输出:
foo
bar
答案 0 :(得分:6)
您可以使用__super__
设置的var anotherView = someView.extend({
onRender: function () {
this.__super__.onRender.call(this);
console.log('bar');
}
});
:
var anotherView = someView.extend({
onRender: function () {
someView.prototype.onRender.call(this);
console.log('bar');
}
});
或直接引用您要在实例上应用的方法:
{{1}}
有关详细信息,请参阅extend
和Javascript Class Inheritance For Functions。