Sobes.tech
Junior

Hoe roep je een methode aan in een keten van oproepen?

sobes.tech AI

Antwoord van AI

Gebruik een punt (.) tussen methodenaanroepen of eigenschappen van een object. Elke methodeaanroep of eigenschapstoegang geeft een object terug, waarop je vervolgens de volgende methode kunt aanroepen of de volgende eigenschap kunt benaderen.

// Voorbeeld van een keten van methodenaanroepen
" abc ".trim().toUpperCase().split(" ");

/*  
   1. " abc ".trim()  -> "abc"  
   2. "abc".toUpperCase() -> "ABC"  
   3. "ABC".split(" ") -> ["ABC"]  
*/

// Voorbeeld van een keten met toegang tot een eigenschap
const user = {
  address: {
    city: "Moskou"
  }
};

user.address.city; // "Moskou"

// Voorbeeld met optioneel chaining (?.)
// Maakt veilige toegang mogelijk tot geneste objecteigenschappen,
// en voorkomt fouten als een van de tussenliggende eigenschappen null of undefined is.
user.address?.street; // undefined, zonder fout

const anotherUser = {};
anotherUser.address?.city; // undefined, zonder fout

Bij het ontwerpen van je eigen methoden om chaining te ondersteunen, moet elke methode this teruggeven (een verwijzing naar het huidige object), behalve de laatste methode in de keten, die het uiteindelijke resultaat kan teruggeven.

class Builder {
  constructor() {
    this.value = "";
  }

  addText(text) {
    this.value += text;
    return this; // Geeft this terug
  }

  addNumber(number) {
    this.value += number;
    return this; // Geeft this terug
  }

  build() {
    return this.value; // Geeft het uiteindelijke resultaat terug
  }
}

const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"