Privatne metode u OOP u JavaScript-u

Ne samo svojstva, već i metode mogu biti privatne. Obično se pomoćne metode čine privatnim kako ne bi slučajno mogle biti pozvane izvan klase.

Pogledajmo na primeru. Neka imamo sledeću klasu:

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

Napravimo privatnu metodu u ovoj klasi, koja će kao parametar primati string i prvom slovu dati veliko slovo:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Iskoristimo našu pomoćnu metodu unutar druge metode:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#cape(this.#name);
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Hajde da proverimo. Kreiramo objekat naše klase:

javascriptlet user = new User('john');

Pozovimo javnu metodu, koja koristi pomoćnu:

javascriptconsole.log(user.show());
Задание 1

U sledećem kodu učinite pomoćnu metodu privatnom:

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