Setters van denkbeeldige eigenschappen in OOP in JavaScript

Naast getters van denkbeeldige eigenschappen kun je ook hun setters maken. In dit geval moeten we binnen de setter de gegevens ontvangen, ze splitsen en de bijbehorende delen in de juiste publieke eigenschappen schrijven.

Laten we het proberen. Laten we de setter van de denkbeeldige eigenschap full implementeren:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  get full() {
    return this.name + ' ' + this.surn;
  }
  
  set full(full) {
    let [name, surn] = full.split(' ');
    
    this.name = name;
    this.surn = surn;
  }
}

Laten we de destructuring vereenvoudigen:

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

Laten we een object van de klas maken:

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

Laten we gegevens in onze denkbeeldige setter schrijven:

javascriptuser.full = 'eric jons';

Laten we controleren of de eigenschappen van het object zijn veranderd:

javascriptconsole.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'