Private metoder i OOP i JavaScript

Ikke bare egenskaper kan være private, men også metoder. Vanligvis blir hjelpemetoder private for å forhindre at de ved et uhell blir kalt utenfra klassen.

La oss se på et eksempel. Anta at vi har følgende klasse:

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

La oss lage en privat metode i denne klassen, som tar en streng som parameter og gjør den første bokstaven stor:

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

La oss bruke vår hjelpemetode innenfor en annen metode:

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

La oss teste. La oss opprette et objekt av klassen vår:

javascriptlet user = new User('john');

La oss kalle den offentlige metoden som bruker hjelpemetoden:

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

I følgende kode, gjør hjelpemetoden privat:

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