No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Getters y setters

13/19
Recursos

Aportes 9

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Respondiendo la pregunta del profe 😂 Según la RAE, caracter no existe, solo existe carácter, y hace referencia a varias definiciones, entre ellas, “Signo de escritura”:

Lo cual es raro porque la mayoría de personas lo pronuncian con acento en la e (incluyéndome), y carácter (para mí) hace referencia al conjunto de cualidades que definen la forma de ser de un ser vivo… Pero, para la RAE, ambas cosas se desprenden de la misma palabra, carácter.

Los Getters y setters son métodos de acceso, lo que significa que generalmente son una interfaz publica para cambiar miembros de las clases privadas.

Getters y setters

get name() {
  return private["_name"];
},
set name(newName) {
  newName.length !==0 ? private["_name"] = newName : console.warn("Name can't be empty");
}

GETTERS Y SETTERS

Utilizamos el método estático del prototipo object getOwnPropertyDescriptor().
Una función obtiene un valor de una propiedad se le llama getter y una que setea(establece) un valor de una propiedad se le llama setter
Para crearlos simplemente necesitan los keywords get y set


const obj = {
    get prop(){
        return this.__prop__;
    },
    set prop() {
        this.__prop__ = value * 2 ;
    },
};
obj.prop = 12;

console.log(obj.prop); // 24

Se crea un objeto, con una única propiedad, tiene un getter y un setter. De esta manera cada vz que le establezcamos un alor a la propiedad, el valor se multiplicará por 2.

se puede crear un accessor properties es e manera explćita usando Object.defineProperty()

Object.defineProperty(obj,//objeto target
'prop', //nombre de la propiedad)
 {
    enumerable:true,
    configurable:true,
    get prop(){
        return this.__prop__;
    },
    set prop(value){
        this.__prop__ = value * 2;
    },
};

obj.prop = 12;
var atr = Object.getOwnProperyDescriptor(obj,'prop');
console.log(atr); // {value: 24, writable: true, enumerable: true, configurable: true}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
La sintaxis get vincula una propiedad de objeto a una función que se llamará cuando se busque esa propiedad.
·
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
La sintaxis set vincula una propiedad de objeto a una función que se llamará cuando se intente establecer esa propiedad.

Hay una forma más simple de hacer lo visto en la clase anterior y es usar getters y setters:

  • cambiamos ‘readName’ por
get name(){
	return private._name
}
  • cambiamos ‘changeName’ por
set name(anotherName){
	if(true){ //acá validamos
		private._name = anotherName
	}
}

Las ventajas son:

  • Código reducido y más limpio
  • Permiten hacer validaciones (al contrario de crear un atributo “name”)
  • No creamos una propiedad ‘name’ por error (en vez de cambiar _name)

No hace falta que protejamos los getters y setters, la única forma de redefinir “name” es con Object.defineProperty. Esto elimina las funciones y crea un nuevo atributo name, que aunque no afecta a _name hace imposible acceder a él.

Para usar el acento en la ‘a’ ponemos: ‘\u00E1’ dentro de la cadena que vamos a imprimir en pantalla.

Que clase de magia oscura es esta :v … Es broma, excelente eso de Getters y Setters

Primera cosa que me gusta de JS contra otros lenguajes que si realmente parecen orientados a objetos