Qiitaはブログぽくない気がするので、つらつらと書くような内容ではないのだけど…
JavaScript 界隈で…クラスを作る場合に
いろいろフレームワークが独自に実装してると思うのです。(OOPしやすいように?)
JavaScript のみで書くには、それなりに大変だから?
ってことで、tmlib にも tm.define とか tm.createClass とかあるです。
で、CoffeeScript にも class ってキーワードで、クラスが作れる。
(JQuery とかもある?)
CoffeeScript で書いてるし、クラスは、class キーワードつかって作りたいな~って思ったけど
tmlib では、やっぱり tm.define / tm.createClass を使わないといろいろ不都合もあるよねって話。
直接クライアントの描画とかに関係ない内部で使うだけのクラスなら、良いのだけど
Scene クラスとかを、CoffeeScript の class で作っちゃうとやっぱり上手くいかないね。
へふ~
両方使うのもあれなので、tmlib 側のを使うべきなんだけど…(coffee だと new つかうし)
おしい、もうちょっとなんとかならないかな~?
tmlib の CoffeeScript バージョンがあればいいのかな?むりか。めんどくさそう。
プロトタイプべースなんだから、そんなに継承とか派生とかがんばるものでもないのかな~とか思いつつ
どうしてもウィンドウクラスとか作ると、派生継承はあったほうがしっくりくる気がするので
もやもやしてるです。(たぶん、JavaプログラマでRuby遣いだからかも)
とりあえず、tmlib の流儀にのることにしてるので、tmlib のクラスでがんばるです。
派生元のメソッドを呼ぶ方法で良い方法がないか模索中…CoffeeScript だと普通に super メソッドを呼べるけど、tmlib ではどうすれば良いのか…
と、思ったけど、将来的にサーバーサイドの事を考えたら、本当に内部の処理って感じの物は、tmlib を使わない方が良いのかな?
superClass を使わない様なクラスなら、使う必要ないだろうし。
tmlib 自体は、node.js でも使えるみたいなので、良いのだけど…
ぐるぐるしてたら、以下のようなのを見つけた。
tmlib.js : tm.define() を使いこなせ!~ JavaScriptOO 用のユーティリティについて - typeOf 'aki_mana'
普通に、 tm.define 使ってたわ。明らかに便利だし
tm.createClass だと、もっと隠蔽しやすいのかな~とか思わなくも無いけども…