Privaatsed omadused OOP-s JavaScriptis

Objekti omadusi, mida saab väliselt lugeda ja kirjutada, nimetatakse avalikeks. On olemas ka privaatsed omadused, mis on kättesaadavad ainult klassi sisemuses.

Privaatsete omaduste nimed tuleb alustada sümboliga #. Lisaks tuleb sellised omadused tingimata deklareerida klassi koodi alguses. Teeme seda:

javascriptclass User {
  #name;
}

Nüüd kirjutame andmed meie omadusse. Seda saab teha näiteks klassi konstruktoris:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
}

Teeme nüüd meetodi, mis tagastab meie omaduse väärtuse:

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

Loome klassi objekti, andes parameetrina kasutaja nime:

javascriptlet user = new User('john');

Katse pöörduda otse meie omaduse poole väljaspool klassi põhjustab vea:

javascriptconsole.log(user.#name); // viga

Meie meetodi väljakutsumine võimaldab seda omadust lugeda:

javascriptconsole.log(user.show()); // väljastab 'john'
Задание 1

Klassis Employee tehke kolm privaatset omadust: nimi, palk ja vanus.

Задание 2

Andke konstruktori parameetrina nende omaduste väärtused.

Задание 3

Tehke meetod, mis väljastab töötaja andmed.