Métodos con getters y setters en JavaScript
¿Que es un método get o set?
Son métodos que utilizaremos para modificar u obtener valores de propiedades de un objeto o clase. Cuando trabajamos con POO(Programación Orientada Objetos) hemos tener en cuenta que cuando una clase tiene una propiedad realizando calculos muy complejos, seria combeniente crear un método para tal función.
Utilizaremos get para obtener el valor de nuestra variable o atributo sin modificar su contenido y set para establecer propiedades pudiendo modificar su contenido. Serán métodos públicos que obtendremos o modificaremos desde una instancia de clase.
Los métodos getters y setters son útiles para encapsular las propiedades. Nos permite acceder a una propiedad de una forma determinada previamente por el programador, sin dejar cabos sueltos a la hora de estas modificaciones.
//utilizamos un generador para hacer un autoincremento de números y crear un id
function* generatorId(){
let n = 0;
while(true) yield n++;
}
const id = generatorId();
class doSomeThing{
constructor(nombre, apellido1, apellido2, fechaNacimiento,contador){
this.contador = id.next().value;
this.nombre = nombre;
this.apellido1 = apellido1;
this,apellido2 = apellido2;
this.fechaNacimiento = new Date(fechaNacimiento); //obj fehca al que le pasamos una fecha
}
get impresor(){
return `
ID : ${this.contador}
${this.nombre}
${this.apellido1}
${this.apellido2}
${this.fechaNacimiento}
`;
}
set modificadorNombre(name){
this.nombre = name;
}
}
const c = console.log;
const someThing = new doSomeThing("David","Gimenez","Plaza", "1977-17-12");
const someThing2 = new doSomeThing("David","Gimenez","Plaza", "1977-17-12");
const someThing3 = new doSomeThing("Rocio", "Madrigal", "Arias", "1985-15-02");
//utilizamos el setter
someThing3.modificadorNombre = "Maria Rocio";
//utilizamos el getter
c(someThing.impresor);
c(someThing2.impresor);
c(someThing3.impresor);