Getters pentru proprietăți imaginare în OOP în JavaScript

Cu ajutorul accesorilor putem crea proprietăți imaginare, care de fapt nu există în obiect. Să ne uităm la un exemplu. Să presupunem că avem o clasă cu două proprietăți publice:

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

Să creăm o a treia proprietate, care va conține numele și prenumele. Să creăm un accesor pentru aceasta:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  get full() {
    return this.name + ' ' + this.surn;
  }
}

Să testăm. Să creăm un obiect al clasei, transmițând ca parametri numele și prenumele:

javascriptlet user = new User('john', 'smit');

Să afișăm valorile proprietăților publice:

javascriptconsole.log(user.name); // 'john'
console.log(user.surn); // 'smit'

Și acum să afișăm valoarea proprietății noastre imaginare:

javascriptconsole.log(user.full); // 'john smit'