ES6: Clases y herencias

En esta ocasión, vamos a ver como funciona la nueva sintaxis para escribir clases en JavaScript. Esta nueva sintaxis es otra de las novedades que presenta ES6.

Declaración

En la versión tradicional de JavaScript, también se puede trabajar con clases (POO) lo que pasa es que no hay una declaración “class” para ello. Se tiene que hacer a través de prototipos (prototype). Vamos a ver un ejemplo:

Ver código anterior en vivo: https://repl.it/@vreaxe/JS-Prototype

Una vez hemos visto como se declaran clases en JS tradicional, vamos a ver cómo se haría con la nueva sintaxis de ES6 que simplemente es una manera más clara de escribir lo mismo:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Class

Como podemos ver al comparar sintaxis, es mucho más sencilla y fácil de entender, y se escribe de manera parecida a otros lenguajes de programación.

 

Getters y setters

Los métodos getters y setters son métodos que nos permiten obtener (get) y establecer (set) propiedades en nuestras clases:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Getters-and-setter

En el ejemplo, estamos formateando el precio a formato Euros. Cuando a través del constructor se establece la propiedad se ejecuta el método set y cuando se imprime por consola el valor se llama al método get.

 

Métodos estáticos

Los métodos estáticos son un tipo de métodos que podemos acceder sin tener que hacer una instancia de la clase y que se declaran poniendo delante del nombre del método static:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Static-method

Es un método de ejemplo que en sí no hace nada útil, pero para ver cómo funciona nos sirve. Como ves, lo estoy llamando antes de la instancia (new) y, como he dicho antes, se puede acceder sin instanciar la clase. También, se llama de manera diferente (nombre de la clase, punto y método estático).

 

Herencia

En JavaScript tradicional, para heredar una clase de otra, lo tenemos que hacer de la siguiente manera:

Ver código anterior en vivo: https://repl.it/@vreaxe/JS-Class-extends

En ES6, simplemente tenemos que utilizar extends después de la declaración de la clase (class) e indicar el nombre de la clase de la cual queremos que herede todos los métodos y propiedades:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Class-extends

-


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Deja una respuesta

  Acepto la política de privacidad