Sifa za Kinafsi katika OOP katika JavaScript

Sifa za kitu ambazo zinaweza kusomwa na kuandikwa kutoka nje, huitwa sifa za umma. Kuna pia sifa za kinafsi, ambazo zitapatikana tu ndani ya darasa.

Majina ya sifa za kinafsi yanahitaji kuanzia na alama #. Licha ya hayo, sifa kama hizi ni lazima ztangazwe mwanzoni mwa msimbo wa darasa. Wacha tufanye hivyo:

javascriptclass User {
  #name;
}

Sasa tuandike data katika sifa yetu. Hii inaweza kufanyika, kwa mfano, katika muundishi wa darasa:

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

Sasa tufanye njia (method) ambayo itarudisha thamani ya sifa yetu:

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

Wacha tuunde kitu cha darasa, tukipitisha jina la mtumiaji kama kigeuzi:

javascriptlet user = new User('john');

Jaribio la kurejea moja kwa moja kwa sifa yetu nje ya darasa litasababisha hitilafu:

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

Lakini utumiaji wa njia yetu utaruhusu kusoma sifa hii:

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

Katika darasa Employee fanya sifa tatu za kinafsi: jina, mshahara na umri.

Задание 2

Pitisha thamani za sifa hizi kupitia muundishi.

Задание 3

Fanya njia (method) ambayo itaonyesha data ya mfanyikazi.