質問

マリオネットでは、元の関数を上書きせずに、ビューの親オブジェクトに同じ名前の関数を呼び出すことをどのように呼び出すこともできますか?

例えば:

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');
    }
});
.

詳細については、関数および .call()

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top