web-dev-qa-db-ja.com

coffeescriptの静的クラスとメソッド

私はcoffeescriptで静的ヘルパークラスを書きたいです。これは可能ですか?

クラス:

class Box2DUtility

  constructor: () ->

  drawWorld: (world, context) ->

を使用して:

Box2DUtility.drawWorld(w,c);
86
Shawn Mclean

クラスメソッドを定義するには、接頭辞として@

class Box2DUtility
  constructor: () ->
  @drawWorld: (world, context) -> alert 'World drawn!'

# And then draw your world...
Box2DUtility.drawWorld()

デモ: http://jsfiddle.net/ambiguous/5yPh7/

drawWorldをコンストラクターのように動作させたい場合は、new @ このような:

class Box2DUtility
  constructor: (s) -> @s = s
  m: () -> alert "instance method called: #{@s}"
  @drawWorld: (s) -> new @ s

Box2DUtility.drawWorld('pancakes').m()

デモ: http://jsfiddle.net/ambiguous/bjPds/1/

179
mu is too short