クラスという概念はなかったのですが、
CoffeeScriptには、クラスという概念があります。
- class Hello
- method: ->
- alert "hello"
メソッドは、クラスのブロックで
メソッド名: (引数) -> メソッド本体と書きます。
これをJavaScriptに変換すると、下記のようになります。
- var Hello;
- Hello = (function() {
- function Hello() {}
- Hello.prototype.method = function() {
- return alert("hello");
- };
- return Hello;
- })();
CoffeeScriptのページのサンプルの例を持ってくると
- class Animal
- constructor: (@name) ->
- move: (meters) ->
- alert @name + " moved #{meters}m."
コンストラクタは "constructor:"で定義できます。
@xxxはインスタンス変数ですね。
ちなみに#{}を使えば、文字列のなかで変数を評価して値を使用できます。(Rubyと同じ構文ですね。)
- class Snake extends Animal
- move: ->
- alert "Slithering..."
- super 5
- class Horse extends Animal
- move: ->
- alert "Galloping..."
- super 45
superでスーパークラスのメソッドを呼び出すことができます。
やっぱりクラスを使うと、比較的大きなコードを書くときは、考えやすくて便利ですよね。
0 件のコメント:
コメントを投稿