Používání tříd v CoffeeScript


CoffeeScript je jazyk kompilovaný do JavaScriptu. Kód v. Soubory kávy nejsou za běhu interpretovány jako JavaScript, ale jsou kompilovány do souborů .js.
Ať už píšete pro JavaScript pro Node.js nebo libovolnou aplikaci v prohlížeči lze napsat CoffeeScript pro jakýkoli typ JavaScriptu.
Poskytuje základní strukturu známou jako třída vytvořená pomocí prototypů JavaScriptu. CoffeeScript je malý jazyk kompilovaný v JavaScriptu.
Pod tou podivnou patinou JavyJavaScript měl vždy vzácné srdce. CoffeeScript je jednoduchý pokus odhalit dobré části JavaScriptu.

Jak používat třídy v CoffeeScript?
V CoffeeScript, který osvěžuje kontrast s mnohem podrobnějším JavaScriptem, lze třídy deklarovat triviálně.
- Nejprve zadejte klíčové slovo „třída“ a poté název třídy.
Metody, včetně metody konstruktoru, jsou psány s názvem metody následovaným dvojtečkou. Před každým názvem metody je nutné prázdné místo. Potom můžete použít operátor funkce (->).
class TimeMachine constructor: ->
Chcete-li vytvořit instanci objektu, použijte nové klíčové slovo následované názvem třídy.
time_machine = new TimeMachine
Proměnné instance začínají znakem @. Takže můžeme mít pilota.
class TimeMachine constructor: (pilot) -> @pilot = pilot Puede acceder a ellos a través de la notación de puntos también. class TimeMachine constructor: (pilot) -> @pilot = pilot time_machine = new TimeMachine "H. G. Wells" console.log time_machine.pilot
Ve výše uvedeném příkladu HG Wells vytiskne sekvenci na konzoli.
Místo nastavení @Pilot = pilot jej můžete napsat zkráceně takto:
class TimeMachine constructor: (@pilot) ->
Chcete-li napsat podtřídu, můžete použít následující rozšíření:
class Tardis extends TimeMachine class DeLorean extends TimeMachine
Řekněme Stroj času Time Machine má metodu git s parametrem, který se odpojí, když se chystá cestovat v čase.
class TimeMachine constructor: (@pilot) -> go: (noise) -> console.log noise
Nyní pokaždé, když použijeme stroj, jdeme a zavoláme super metodu.
class Tardis extends TimeMachine go: -> super "vorp vorp" class DeLorean extends TimeMachine go: -> super "One point twenty-one gigawatts!" doctors_wife = new Tardis "The Doctor" doc_browns_wheels = new DeLorean "Marty" doctors_wife.go() doc_browns_wheels.go()
Voláním go (), když oba časové automaty vytisknou své vlastní zvuky.

Mixiny
Mixiny nejsou něco, co by CoffeeScript nativně podporoval, Existuje dobrý důvod, proč mohou být implementovány bezvýznamně.
Například zde existují dvě funkce, protáhnout se () a include (), které přidá vlastnosti třídy a Příklad třídy.
extend = (obj, mixin) -> obj[name] = method for name, method of mixin obj include = (klass, mixin) -> extend klass.prototype, mixin # Usage include Parrot, isDeceased: true (new Parrot).isDeceased
Blends jsou skvělý model pro sdílení běžné logiky mezi moduly, když dědičnost nestačí. Výhodou možnosti zahrnout více atributů ve srovnání s dědičností, kde lze zdědit pouze jednu třídu.

