A magánjellegűség régi stílusban az OOP-ben JavaScriptben

A magántulajdonságok és módszerek deklarálása a # szimbólumon keresztül nemrégiben jelent meg a JavaScriptben. Előtte speciális trükkös módszert kellett használni.

Ennek a módszernek a lényege, hogy megállapodás kötődik arról, hogy a magántulajdonságok és módszerek neveinek aláhúzásjellel kell kezdődniük. Valójában ezek a nevek nem lesznek magánjellegűek, de megállapodunk abban, hogy nem használjuk őket a osztályon kívül.

Próbáljuk ki. Készítsünk magántulajdonságot ebben a stílusban:

javascriptclass User {
  constructor(name) {
    this._name = name;
  }
  
  show() {
    return this._name;
  }
}

Hozzunk létre egy objektumot az osztályból:

javascriptlet user = new User('john', 'smit');

Hívjuk meg a metódust, amely kiírja a tulajdonságunk értékét:

javascriptconsole.log(user.show());

A tulajdonsághoz való hozzáférési kísérlet az osztályon kívül nem vezet hibához:

javascriptconsole.log(user._name); // nincs hiba
Задание 1

A következő kódban tegye a tulajdonságokat magánjellegűvé:

javascriptclass Employee {
  constructor(name, salary) {
    this._name = name;
    this._salary = salary;
  }
  
  getName() {
    return this._name;
  }
  getSalary() {
    return this._salary;
  }
}
Задание 2

A következő kódban tegye a segédmetódust magánjellegűvé:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getSalary() {
    return this._addSign(this.salary);
  }
  
  _addSign(num) {
    return num + '
;
  }
}