我想用coffeescript编写一个静态的帮助类。这是否可行?
class:
class Box2DUtility
constructor: () ->
drawWorld: (world, context) ->
使用:
Box2DUtility.drawWorld(w,c);
我想用coffeescript编写一个静态的帮助类。这是否可行?
class:
class Box2DUtility
constructor: () ->
drawWorld: (world, context) ->
使用:
Box2DUtility.drawWorld(w,c);
您可以通过在方法前加上 @
来定义类方法:
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()
constructor: (@s) ->
也可以工作吗?(即,代替手动赋值的@s = s
) - Tripp Lilleythis
访问,这就是JavaScript的工作方式,所以您无法对此进行任何操作。我们实际上也没有类,只有对象、原型和构造函数,因此术语更加混乱。将函数作为构造函数的属性附加(这就是此处发生的事情)是我们拥有的最接近类方法的等效物。检查JavaScriptBox2DUtility :: drawWorld
将不起作用。 - mu is too short静态块
? - Alvaro Lourenço