Virtuaalisten ominaisuuksien asettimet OOP:ssa JavaScriptissä

Virtuaalisten ominaisuuksien hakijoiden lisäksi voit luoda myös niiden asettimia. Tässä tapauksessa asettimen sisällä meidän täytyy saadata tiedot, jakaa ne ja kirjoittaa vastaavat osat tarvittaviin julkisiin ominaisuuksiin.

Kokeillaan. Toteutetaan virtuaalisen ominaisuuden full asettaja:

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;
  }
}

Yksinkertaistetaan destrukturointi:

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(' ');
  }
}

Luodaan luokan olio:

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

Kirjoitetaan tiedot virtuaaliseen asettimeemme:

javascriptuser.full = 'eric jons';

Tarkistetaan, että olion ominaisuudet muuttuivat:

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