Частни свойства в ООП в JavaScript

Свойствата на обект, които могат да бъдат четени и записвани отвън, се наричат публични. Съществуват и частни свойства, които ще бъдат достъпни само вътре в класа.

Имената на частните свойства трябва да започват със символа #. Освен това, такива свойства трябва задължително да бъдат декларирани в началото на кода на класа. Нека направим това:

javascriptclass User {
  #name;
}

Сега ще запишем данни в нашето свойство. Това може да се направи, например, в конструктора на класа:

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

Сега нека направим метод, който ще връща стойността на нашето свойство:

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

Нека създадем обект от класа, като подадем като параметър името на потребителя:

javascriptlet user = new User('john');

Опит за директно достъпване до нашето свойство извън класа ще доведе до грешка:

javascriptconsole.log(user.#name); // грешка

А извикването на нашия метод ще позволи да прочетем това свойство:

javascriptconsole.log(user.show()); // ще изведе 'john'
Задание 1

В класа Employee направете три частни свойства: име, заплата и възраст.

Задание 2

Подайте като параметър на конструктора стойностите на тези свойства.

Задание 3

Направете метод, който ще изведе данните за служителя.