2013年9月11日水曜日

backbone.js で親 View の initialize() を呼び出す

Backbone.js では View を継承して階層化させることができます。

Backbone.js で View を継承する - y.okano blog
Backbone.js でメソッドのオーバーライド - y.okano blog

上の記事で、継承元のメソッドをオーバーライドするには prototype を使えると書きましたが、親の initialize() を呼ぶだけならもっとシンプルに掛けます。
var ChildView = ParentView.extend({
    constructor: function(options) {
        ParentView.call(this, options);  // 親の initialize() を実行
        ......  // 独自の初期化処理
    }
});

これは親で定義されている初期化を実行した上で、子の独自の初期化を行いたい場合に使えます。
例えば親から継承した基本的なメンバの初期化をした上で、子だけが持つメンバを改めて初期化する場合などです。
enchant.js なんかでよく見る書き方ですね。

JavaScript の call() についてはこちらを参照
JavaScript でコールバックするときの注意 - y.okano blog

View の constructor についてはこちら
View Constructor - Backbone.js

0 件のコメント:

コメントを投稿