2013年8月20日火曜日

Backbone.js でメソッドのオーバーライド

Backbone.js ではクラスベースオブジェクト指向のようにメソッドのオーバーライドが可能です。親のクラスから継承したメソッドを上書きしたり、拡張したりすることができます。

継承先のクラスで以下のように書くと、継承元のメソッドを呼び出すことができます。
SuperClass.prototype.MethodName.call(this);

SupeClassMethodName はそれぞれ変更してください。
Backbone.js のクラスのメソッドは prototype 内に定義されています。
これをサブクラスから呼び出すことで親のメソッドを実行できます。
このとき call() を使って、this をサブクラス自身に設定して呼び出しています。

以下に親 View のメソッドをオーバーライドするサンプルを作成しました。
もちろん Model でも同じことが可能です。

サンプルアプリ
http://okanoworld.appspot.com/sample/backbonejs/override/index.html

ソースコード
https://github.com/yokano/sample/tree/master/backbonejs/override

サンプルでは灰色と緑の View が表示されます。
緑の View は灰色の View を継承しています。
灰色の View はクリックすると BLOCK と表示します。
緑色の View はクリックされると親ビューのクリック処理を呼び出してから、
独自の処理として GREEN と表示しています。

0 件のコメント:

コメントを投稿