Clean Code – #6. Los getters y los setters ya no son lo que eran 😒

Desde que trabajo con la versión ES6 de Javascript no hay curso que me encuentre un/a alumno/a con un bucle infinito al crear una clase.

Ya lo dijo Ada:

“Los getters y los setters ya no son lo que eran”.

Ada Lovecode cuando salió ES6

Y es que ahora hay una serie de recomendaciones que tenemos que tener en cuenta a la hora de definir estos métodos para evitar sustos:

1. Se nombran con la palabra get o set seguida del nombre de la propiedad que obtienen o modifican:

  • get nombre () {…}
  • set apellido() {…}

2. Se recomienda que el método get tenga esta forma:

get nombre() {
return this._nombre
}

3. Y así sería el método set:

set nombre() {
 this._nombre = nombre;
}

¿Pero qué pasa si utilizo en lugar de this._nombre, this.nombre?

¡Se produciría un bucle infinito!

Podríamos usar en lugar de _nombre cualquier otra opción (miNombre, cosa…) pero por convención se suele utilizar el guion bajo precediendo al nombre.

Solo os dejo un ejemplo (¡totalmente real, lo prometo!) que habla por sí solo. En este caso, hay una mala (absurda) elección de los nombres de los métodos y se produce un bucle infinito por utilizar nombre y numeroVidas en constructor y métodos:

class Jugadores

¡No! Hoy no hay deberes.

El próximo día elegiremos los mejores nombres para clases.

Entre tanto, si quieres, puedes dejar en los comentarios tu código para ser destripado.

Publica un comentario

Deja un comentario