在Marionette中,如何在 View 的父对象上调用同名函数而不覆盖原始函数?
例如:
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
最佳答案
您可以使用 __super__
设置的extend
:
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');
}
});
有关更多信息,请参见Javascript Class Inheritance For Functions和what
.call()
does。关于javascript - 在Marionette.js中调用父 View 的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24027419/