Modificadores de Acceso

public, private y protected son los tres modificadores de acceso utilizados en una clase para controlar su acceso desde el exterior. De forma predeterminada, todos los miembros (propiedades, campos, métodos o funciones) son accesibles públicamente desde el exterior de la clase.

class Coche {
  constructor(nombre) {
    this.nombre = nombre;
  }
  static hola(x) {
    return "Hola " + x.nombre;
  }
}
let miCoche = new Coche("Toyota");
console.log(Coche.hola(miCoche)); // Hola Toyota

Los miembros private solo pueden accederse internamente dentro de la clase y no son accesibles desde el exterior. Las propiedades privadas deben comenzar con #.

class Coche {
  constructor(nombre) {
    this.nombre = nombre;
  }
  static hola(x) {
    return "Hola " + x.nombre;
  }
  #presentar(nombredelcoche) {
    return 'Tengo un ' + this.nombredelcoche;
  }
}
let miCoche = new Coche("Toyota");
console.log(miCoche.#presentar("Camry")); // Error
console.log(Coche.hola(miCoche)); // Hola Toyota

Los campos protected solo son accesibles desde dentro de la clase y desde las clases que la extienden. Son útiles para la interfaz interna, ya que la clase que hereda también gana acceso a la clase principal. Los campos protegidos utilizan _.

class Coche {
  constructor(marca) {
    this.nombredelcoche = marca;
  }
  _presentar() {
    return 'Tengo un ' + this.nombredelcoche;
  }
}

class Modelo extends Coche {
  constructor(marca, mod) {
    super(marca);
    this.modelo = mod;
  }
  mostrar() {
    return this._presentar() + ', es un ' + this.modelo;
  }
}
let miCoche = new Modelo("Toyota", "Camry");
console.log(miCoche.mostrar()) // Tengo un Toyota, es un Camry

results matching ""

    No results matching ""