CoffeeScriptでは、クラス内の変数に「@」をつけて宣言するとクラスメソッドになる。
例
class Hoge
#クラスメソッド
@classMethod = (param) ->
"param is #{param}."
#クラス変数
@count = 0
constructor: ->
# コンストラクタ内で、クラス変数の値をインクリメント
Hoge.count += 1;
console.log Hoge.classMethod "パラメータ"
new Hoge();
console.log Hoge.count
new Hoge();
console.log Hoge.count
実行結果
param is パラメータ.
1
2
JavaScriptへの変換結果
クラスメソッドや変数は、CoffeeScriptで定義したクラスに対応するfunctionのプロパティとして宣言される。
var Hoge;
Hoge = (function() {
Hoge.classMethod = function(param) {
return "param is " + param + ".";
};
Hoge.count = 0;
function Hoge() {
Hoge.count += 1;
}
return Hoge;
})();
console.log(Hoge.classMethod("パラメータ"));
new Hoge();
console.log(Hoge.count);
new Hoge();
console.log(Hoge.count);