Clases y herencia con CoffeeScript - ydarias/CoffeeScriptTutorial GitHub Wiki

En contra de lo que piensa mucha gente, JavaScript sí permite herencia e incluso trabajar con objetos al estilo de Java o C#, solo que no lo hace de la forma que esperamos. Para ello CoffeeScript crea algunos nuevos conceptos que posteriormente son traducidos utilizando la herencia prototípica de JavaScript.

class Animal
  constructor: (@name) ->

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

class Horse extends Animal
  move: ->
    alert "Galloping..."
    super 45

sam = new Snake "Sammy the Python"
tom = new Horse "Tommy the Palomino"

sam.move()
tom.move()

Por lo tanto, en el código anterior podemos observar como se crea una clase, como se extiende dicha clase o incluso como se sobreescriben métodos de la clase. Todo ello sin necesidad de acceder al objeto 'prototype' y de forma más clara de lo que sería habitual en JavaScript.

⚠️ **GitHub.com Fallback** ⚠️