カテゴリー:
JavaScript
タグ:
 JavaScript CoffeeScript

このエントリーをはてなブックマークに追加
更新日時:
2013年01月30日(水)
作成日時:
2013年01月30日(水)

前の記事 / 次の記事

CoffeeScriptでクラスを扱う時のメモ。

コンストラクターの引数を@付で受け取ると自動的にインスタンス変数になる。

class Car
  constructor: (@name) ->

car = new Car "prius"
car.name #=> prius

自動的にインスタンス変数にしない場合はコンストラクターで定義する。

class Car
  constructor: (name, color) ->
    @name  = name
    @color = color

car = new Car "prius", "white"
car.name  #=> prius
car.color #=> white

メソッドの定義。
メソッドの呼び出しには必ず()が必要。

class Car
  constructor: (name, color) ->
    @name  = name
    @color = color
    @speed = 10

@accelerator: (quantity=10)->
  @speed += quantity
@brake: (quantity=10)->
  @speed -= quantity

car = new Car "prius", "white"
car.accellerator()
car.speed #=> 20
car.accellerator(100)
car.speed #=> 120
car.break()
car.speed #=> 110
car.break(50)
car.speed #=> 60

@は何なのか? => @はthisの省略系

class Car
  constructor: (name, color) ->
    this.name  = name
    this.color = color
    this.speed = 10

this.accelerator: (quantity)->
  this.speed += quantity
this.brake: (quantity)->
  this.speed -= quantity