Kahve kağıdına statik bir yardımcı sınıf yazmak istiyorum. Mümkün mü?
sınıf:
class Box2DUtility
constructor: () ->
drawWorld: (world, context) ->
kullanma:
Box2DUtility.drawWorld(w,c);
Kahve kağıdına statik bir yardımcı sınıf yazmak istiyorum. Mümkün mü?
sınıf:
class Box2DUtility
constructor: () ->
drawWorld: (world, context) ->
kullanma:
Box2DUtility.drawWorld(w,c);
Yanıtlar:
Sınıf yöntemlerini önek olarak tanımlayabilirsiniz @
:
class Box2DUtility
constructor: () ->
@drawWorld: (world, context) -> alert 'World drawn!'
# And then draw your world...
Box2DUtility.drawWorld()
Demo: http://jsfiddle.net/ambiguous/5yPh7/
Ve drawWorld
bir kurucu gibi davranmanızı istiyorsanız, o zaman şöyle diyebilirsiniz new @
:
class Box2DUtility
constructor: (s) -> @s = s
m: () -> alert "instance method called: #{@s}"
@drawWorld: (s) -> new @ s
Box2DUtility.drawWorld('pancakes').m()
this
, JavaScript böyle çalışır, bu yüzden bu konuda hiçbir şey yapamazsınız. Bizim de sınıflarımız yok, sadece nesneler, prototipler ve yapıcı işlevleri, bu yüzden terminoloji daha da karışık. Yapıcı işlevin özellikleri olarak işlevleri eklemek (burada olan şey budur), sahip olduğumuz sınıf yöntemine en yakın eşdeğerdir. JavaScript'in Box2DUtility::drawWorld
çalışmayacağını kontrol edin .
constructor: (@s) ->
İkinci örnekte olduğu çalışacak? (yani, manuel atama yerine@s = s
)