GETTERS y SETTERS
Para Svekis y Putten[5] las claves get
y set
son propiedades especiales –que se ven como una función()–. Son usados para 'entrar' a una clase y 'enganchar' datos desde ella. Así mismo, es correcto bloquear el acceso a esos datos desde lo que sea que no fuere su propia clase mediante el signo '#'.
/* Se crea un objeto con propiedades y valores */
let humano = {
ojos: 2, cerebro: 1,
/* Va coma luego de la última propiedad */
/* Agregamos una función para captar
los valores de las propiedades */
get crearHumano() {
return `Humano con ${this.ojos} ojos y ${this.cerebro} cerebro`;
},
/* Va coma luego de la última función */
/* Sin embargo, para reasignar nuevos valores
a las propiedades de 'humano', necesitaremos la clave 'set' */
set crearHumano(nuevoValor) {
this.ojos = nuevoValor.split(" ");
}
};
console.log(humano.crearHumano);
// -> Este nuevo humano tiene 2 ojos y 1 cerebro
// Valor actualizado
humano.crearHumano = "4";
console.log(humano.crearHumano);
// -> Este nuevo humano tiene 4 ojos y 1 cerebro
Así mismo, es correcto bloquear el acceso a esos datos desde lo que sea que no fuere su propia clase mediante el signo '#'.
En el ejemplo de abajo, GET
captura o toma el valor de la propiedad protegida. Mientras que SET
toma el valor de la propiedad protegida y posibilita actualizar ese valor fuera de la clase. Para Svekis y Putten[5] aún con propiedades innaccesibles fuera de una clase, la clave 'get' permite capturar esos valores, mientras que 'set' los actualiza:
class bolon{
/* Datos bloqueados: innacesibles
desde fuera de la clase */
#ingredienteA
#ingredienteB;
constructor(ingredienteA, ingredienteB){
this.#ingredienteA = ingredienteA;
this.#ingredienteB = ingredienteB
}
// GET-SET --> ingredienteA
get ingredienteA(){return "rico " + this.#ingredienteA;}
// Doble identificador
set ingredienteA(ingredienteA)
{this.#ingredienteA = ingredienteA;}
// GET-SET --> ingredienteB
get ingredienteB(){return this.#ingredienteB;}
// Doble identificador
set ingredienteB(ingredienteB)
{this.#ingredienteB = ingredienteB;}
} // Fin clase
let boloncito = new bolon("verde", "chicharron");
console.log("Mi boloncito es de " +
boloncito.ingredienteA + " con " +
boloncito.ingredienteB );
// --> Mi boloncito es de rico verde con chicharron
Actualizar un valor mediante set es posible desde fuera de la clase. En el ejemplo de abajo se actualizó el valor 'chicharron' a 'QUESITO!'. Eso debe hacerse DESPUÉS -y no antes– de crear el objeto 'boloncito':
Subir al inicio Avanzar