web-dev-qa-db-fra.com

Classes et méthodes statiques en coffeescript

Je veux écrire une classe d'aide statique en coffeescript. Est-ce possible?

classe:

class Box2DUtility

  constructor: () ->

  drawWorld: (world, context) ->

en utilisant:

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

Vous pouvez définir des méthodes de classe en les préfixant avec @:

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

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

Démo: http://jsfiddle.net/ambiguous/5yPh7/

Et si vous voulez que votre drawWorld se comporte comme un constructeur, vous pouvez dire new @ comme ça:

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

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

Démo: http://jsfiddle.net/ambiguous/bjPds/1/

179
mu is too short