28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Getters y setters en JavaScript
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
08 May JavaScri..

¿Cómo utilizar getters y setters para mejorar tus clases en JavaScript?

Resumen: en este artículo, aprenderás qué son los getters y setters en JavaScript y cómo utilizarlos en tus clases para acceder y modificar propiedades de una manera más segura y controlada. Además, conocerás la sintaxis para definir y utilizar getters y setters en una clase, ejemplos prácticos de uso, y las ventajas y limitaciones de su implementación en tus proyectos.

Introducción

¡Saludos y bienvenido a Estrada Web Group! Como programador con más de 10 años de experiencia en JavaScript, hoy quiero hablarles sobre los getters y setters en las clases de JavaScript. A lo largo de los años, la programación orientada a objetos ha cobrado una gran importancia y cada vez es más común encontrarnos con clases y objetos en nuestro código. Los getters y setters son una herramienta importante en la POO que nos permiten controlar el acceso a las propiedades de un objeto. En este artículo, aprenderemos cómo definir y utilizar getters y setters en una clase en JavaScript y cómo nos pueden ayudar a escribir un código más seguro y mantenible. ¡Acompáñenme en este recorrido por los getters y setters en las clases de JavaScript!

¿Qué son los getters y setters en JavaScript y por qué son importantes?

Los getters y setters son una característica clave de la programación orientada a objetos en JavaScript. Los getters y setters permiten que los objetos se comporten de manera más inteligente y controlada.

Imagina que tienes una clase de "coche" en JavaScript. Puede haber muchas propiedades diferentes que quieras controlar en un objeto de coche, como la velocidad, la aceleración, el kilometraje, etc. Los getters y setters te permiten controlar y proteger el acceso a estas propiedades.

Los getters te permiten obtener el valor de una propiedad de un objeto, mientras que los setters te permiten establecer el valor de una propiedad de un objeto. Los getters y setters pueden usarse para validar la entrada de datos y garantizar que las propiedades del objeto se mantengan dentro de ciertos límites.

En resumen, los getters y setters son importantes porque ayudan a garantizar que los objetos se comporten de manera controlada y segura, lo que puede mejorar la calidad y confiabilidad del código que escribimos en JavaScript.

Sintaxis para definir y utilizar getters y setters en una clase en JavaScript

Es importante mencionar que los getters y setters se definen dentro de la clase utilizando las palabras clave get y set, respectivamente. La sintaxis básica para definir un getter es la siguiente:

class Persona {
  constructor(nombre) {
    this._nombre = nombre;
  }
  get nombre() {
    return this._nombre;
  }
}

En este ejemplo, estamos definiendo una clase Persona con un constructor que recibe un parámetro nombre. Dentro de la clase, también definimos un getter para obtener el valor de la propiedad nombre.

Para utilizar el getter, simplemente llamamos al método como si fuera una propiedad:

const persona1 = new Persona('Juan');
console.log(persona1.nombre); // Juan

La sintaxis para definir un setter es similar a la del getter:

class Persona {
  constructor(nombre) {
    this._nombre = nombre;
  }

  get nombre() {
    return this._nombre;
  }

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

En este ejemplo, hemos definido un setter para modificar el valor de la propiedad nombre. Para utilizar el setter, simplemente asignamos un nuevo valor a la propiedad:

const persona1 = new Persona('Juan');
persona1.nombre = 'Pedro';
console.log(persona1.nombre); // Pedro

Es importante destacar que al definir un setter, también se debe definir la propiedad correspondiente en la clase. En este caso, hemos definido la propiedad nombre como _nombre para evitar conflictos con el getter y el setter.

Ejemplos de uso de getters y setters en JavaScript

A continuación, te presento algunos ejemplos de uso de getters y setters en JavaScript para que puedas entender mejor cómo funcionan:

  1. Ejemplo de uso de getter y setter para una propiedad "edad":

class Persona {

  constructor(nombre, edad) {
    this.nombre = nombre;
    this._edad = edad;
  }

  get edad() {
    return this._edad;
  }

  set edad(nuevaEdad) {
    if (nuevaEdad < 0) {
      console.error("La edad no puede ser negativa");
    } else {
      this._edad = nuevaEdad;
    }
  }

}

const persona1 = new Persona("Juan", 25);
console.log(persona1.edad); // Output: 25
persona1.edad = 30;
console.log(persona1.edad); // Output: 30
persona1.edad = -10; // Output: "La edad no puede ser negativa"
console.log(persona1.edad); // Output: 30

En este ejemplo, hemos creado una clase Persona con una propiedad _edad y los métodos getters y setters correspondientes. El getters devuelve el valor actual de la propiedad _edad, mientras que el setters comprueba si el nuevo valor de la propiedad _edad es válido (en este caso, si es mayor o igual a cero). Si el valor no es válido, el setter muestra un mensaje de error. Si el valor es válido, el setter actualiza la propiedad _edad con el nuevo valor.

  1. Ejemplo de uso de getter y setter para una propiedad "nombre":

class Persona {

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

  get nombre() {
    return this._nombre.toUpperCase();
  }

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

}

const persona1 = new Persona("Juan");
console.log(persona1.nombre); // Output: "JUAN"
persona1.nombre = "Pedro";
console.log(persona1.nombre); // Output: "PEDRO"

En este ejemplo, hemos creado una clase Persona con una propiedad _nombre y los métodos getters y setters correspondientes. El getters devuelve el valor actual de la propiedad _nombre, pero lo convierte a mayúsculas antes de devolverlo. El setters convierte el nuevo valor de la propiedad _nombre a minúsculas antes de asignarlo.

  1. Ejemplo de uso de getter y setter para una propiedad "saldo":

class CuentaBancaria {

  constructor(saldo) {
    this._saldo = saldo;
  }

  get saldo() {
    return `$${this._saldo.toFixed(2)}`;
  }

  set saldo(nuevoSaldo) {
    if (nuevoSaldo < 0) {
      console.error("El saldo no puede ser negativo");
    } else {
      this._saldo = nuevoSaldo;
    }
  }

}

const cuenta1 = new CuentaBancaria(1000);
console.log(cuenta1.saldo); // Output: "$1000.00"
cuenta1.saldo = 2000;
console.log(cuenta1.saldo); // Output: "$2000.00"
cuenta1.saldo = -500; // Output: "El saldo no puede ser negativo"
console.log(cuenta1.saldo); // Output: "$2000.00"

En este ejemplo, hemos creado una clase CuentaBancaria con una propiedad _saldo y los métodos getters y setters correspondientes. El getter devuelve el valor de la propiedad _saldo, mientras que el setter establece el valor de la propiedad _saldo si el valor pasado es un número positivo.

En resumen, los getters y setters son una herramienta útil para acceder y modificar propiedades de una clase en JavaScript. Nos permiten establecer validaciones y lógica adicional al obtener o establecer valores en una propiedad de clase.

Ventajas y limitaciones del uso de getters y setters en JavaScript

Los getters y setters en JavaScript pueden ser una herramienta muy poderosa en la programación orientada a objetos, pero como cualquier herramienta, tienen ventajas y limitaciones que es importante tener en cuenta.

Una de las principales ventajas de utilizar getters y setters en JavaScript es que nos permiten controlar el acceso a las propiedades de una clase. Al utilizar getters y setters, podemos definir cómo se accede y se modifica una propiedad, lo que nos da un mayor control sobre el comportamiento de nuestra clase. Además, los getters y setters también nos permiten añadir validación y lógica adicional a la hora de acceder a una propiedad.

Otra ventaja de utilizar getters y setters en JavaScript es que nos permite mantener una mayor coherencia y consistencia en nuestro código. Al utilizar getters y setters, podemos asegurarnos de que las propiedades de nuestras clases se acceden y se modifican de manera uniforme en todo nuestro código, lo que hace que sea más fácil de entender y mantener.

Sin embargo, el uso excesivo de getters y setters también puede ser una limitación. Si definimos demasiados getters y setters en una clase, podemos llegar a tener un código confuso y difícil de entender. Además, los getters y setters pueden tener un impacto negativo en el rendimiento de nuestra aplicación, especialmente si estamos accediendo a ellos de manera repetitiva.

Conclusión

En conclusión, los getters y setters son una herramienta poderosa para manipular y acceder a las propiedades de una clase en JavaScript. Su sintaxis es sencilla y su uso ofrece ventajas como mayor control y seguridad en la manipulación de datos. Sin embargo, su uso excesivo o innecesario puede tener un impacto negativo en el rendimiento del código.

Es importante entender cuándo y cómo utilizar los getters y setters de manera efectiva y siempre mantener en mente las mejores prácticas de programación. En los siguientes artículos exploraremos temas relacionados con la programación orientada a objetos en JavaScript, como la herencia y el polimorfismo.

¡Practica el uso de getters y setters en tus proyectos y no dudes en compartir tus resultados y preguntas en la sección de comentarios!

Compartir:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape