Статические классы и методы в coffeescript - PullRequest
86 голосов
/ 01 февраля 2012

Я хочу написать статический вспомогательный класс в coffeescript.Возможно ли это?

класс:

class Box2DUtility

  constructor: () ->

  drawWorld: (world, context) ->

с использованием:

Box2DUtility.drawWorld(w,c);

1 Ответ

179 голосов
/ 01 февраля 2012

Вы можете определить методы класса, поставив перед ними префикс @:

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...