これにより、冗長な記述や誤りが入り込みやすい部分を、よりシンプルに記述することが可能になります。
そのCoffeeScriptでクラスを記述してみたいと思いますが、その前にライブラリをインストールします。
ここでは、Node.jsを既にインストール済みであることを前提とします。
$ npm install -g coffee-script
グローバル・オプションでインストールしました。これでCoffeeScriptのインストールは完了です。
コンパイルのコマンドは以下のようになります。
$ coffee -c hoge.js.coffee
CoffeeScriptによって記述された hoge.js.coffee をコンパイルすることにより、hoge.js が生成されます。
この流れが基本です。
JavaScriptにはクラスという考え方が存在せず、prototypeというクラスに似た考え方を利用して、あたかもクラスを実装しているように見せかけていますが、CoffeeScriptでは、classキーワードを使用してクラス定義を記述できます。
# TVクラスを定義
class Television
# チャンネルプロパティを定義します。
ch: '7'
# 引数としてnameを受け取り初期化をするコンストラクタを定義します。
constructor: (@name) ->
# メソッド watach を定義
watach: ->
alert "#{@name}で#{@ch}を視聴中 ..."
return
# Usage;
tv = new Television 'television'
tv.watch()
var Television, tv;
Television = (function() {
Television.prototype.ch = '7';
function Television(name) {
this.name = name;
}
Television.prototype.watch = function() {
alert("" + this.name + "で、ch " + this.ch + "を視聴中 ...");
};
return Dog;
})();
tv = new Television('4Kテレビ');
tv.watch();
結果は ...
「4Kテレビで、ch 7を視聴中 ...」
CoffeeScriptの @は、thisとほぼ同じ意味でインスタンス・プロパティへの参照です。
また、()なども省略可能で、インデントにより表します。このあたりは、Rubyや、Python、または、Jadeに似た感覚です。
0 件のコメント :
コメントを投稿