Usando Clases en CoffeeScript

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.

Usando Clases en CoffeeScript

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.

Índice()

    ¿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.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ¿Qué te pareció este artículo?

    Subir

    Este sitio web utiliza cookies para garantizar que obtenga la mejor experiencia en nuestro sitio web. Leer Más