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:
¡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.
Lo siento, debes estar conectado para publicar un comentario.
Resumen de privacidad
Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.