Sobes.tech
Junior

Hogyan hívjuk meg a metódust a hívási láncban?

sobes.tech MI

Válasz az MI-től

Objektum metódushívásai vagy tulajdonságai között pont (.) használjon. Minden metódushívás vagy tulajdonság elérés egy objektumot ad vissza, amelyen a következő metódust vagy tulajdonságot hívhatja meg.

// Metóduslánc példája
" abc ".trim().toUpperCase().split(" ");

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

// Tulajdonság elérésével láncolás példája
const user = {
  address: {
    city: "Moszkva"
  }
};

user.address.city; // "Moszkva"

// Opcionális láncolás (?.) használata
// Biztonságosan hozzáférhet a beágyazott objektum tulajdonságaihoz,
// elkerülve a hibákat, ha valamelyik közbenső tulajdonság null vagy undefined.
user.address?.street; // undefined, hiba nélkül

const anotherUser = {};
anotherUser.address?.city; // undefined, hiba nélkül

A láncolás támogatására tervezett saját metódusok esetén minden metódusnak vissza kell adnia a this-t (a jelenlegi objektum hivatkozását), kivéve a lánc utolsó metódusát, amely visszaadhatja a végső eredményt.

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

  addText(text) {
    this.value += text;
    return this; // Visszaadja ezt
  }

  addNumber(number) {
    this.value += number;
    return this; // Visszaadja ezt
  }

  build() {
    return this.value; // Visszaadja a végső eredményt
  }
}

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