
CoffeeScript es un lenguaje que se compila a JavaScript. El código en los archivos .coffee no se interpreta en tiempo de ejecución, como JavaScript, pero se compila en archivos .js.
Ya sea que esté escribiendo para JavaScript para Node.js o cualquier implementación del navegador, CoffeeScript se puede escribir para cualquier y todos los tipos de JavaScript.
Proporciona una estructura básica conocida como clase que se construye utilizando los prototipos de JavaScript. CoffeeScript es un pequeño lenguaje que compila en JavaScript.
Debajo de esa extraña pátina de Java, JavaScript siempre ha tenido un corazón precioso. CoffeeScript es un intento de exponer las partes buenas de JavaScript de una manera sencilla.
¿Cómo Utilizar Clases en CoffeeScript?
Las clases se pueden declarar de forma trivial en CoffeeScript, que es un contraste refrescante con el JavaScript mucho más detallado.
- Primero Escriba la “class” de Palabra Clave, Seguido del Nombre de su Clase.
Los métodos, incluido el método constructor, se escriben con el nombre del método seguido de dos puntos. Se necesita espacio en blanco antes de cada nombre de método. A continuación, puede utilizar el operador de función (->).
class TimeMachine constructor: ->
Para crear una instancia de un objeto, use la palabra clave new seguida del nombre de la clase.
time_machine = new TimeMachine
- Variables de Instancia
Las variables de instancia comienzan con un símbolo @. Para que podamos tener un piloto.
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
En el ejemplo anterior, la cadena H. G. Wells se imprimirá en la consola.
En lugar de configurar @pilot = pilot, puedes escribirlo en forma abreviada de la siguiente manera:
class TimeMachine constructor: (@pilot) ->
- Herencia de Clase
Para escribir una subclase puedes usar extends como esta:
class Tardis extends TimeMachine class DeLorean extends TimeMachine
Digamos que TimeMachine tiene un método go con un parámetro que se desconecta cuando Time Machine está a punto de viajar en el tiempo.
class TimeMachine constructor: (@pilot) -> go: (noise) -> console.log noise
Ahora vamos a cada vez que implementemos la máquina y llamemos al método super.
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()
Entonces llamando go() en los casos en que ambas máquinas de tiempo imprimirán su propio sonido respectivo.
Mixins
Los mixins no son algo soportado de forma nativa por CoffeeScript, por la buena razón de que se pueden implementar de manera trivial.
Por ejemplo, aquí hay dos funciones, extend () e include () que agregarán propiedades de clase y instancia respectivamente a una clase.
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
Los mixins son un gran patrón para compartir lógica común entre módulos cuando la herencia no es adecuada. La ventaja que puede incluir varios en comparación con la herencia de la que solo se puede heredar una clase.