Sobes.tech
Junior

Как да се обърнете към метод в верига от извиквания?

sobes.tech AI

Отговор от AI

Използвайте точка (.) между извикванията на методи или свойствата на обект. Всяко извикване на метод или достъп до свойство връща обект, върху който след това можете да извикате следващия метод или да получите следващото свойство.

// Пример за верига от извиквания на методи
" abc ".trim().toUpperCase().split(" ");

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

// Пример за верига с достъп до свойство
const user = {
  address: {
    city: "Москва"
  }
};

user.address.city; // "Москва"

// Пример с използване на опционална верига (?.)
// Позволява безопасен достъп до свойства на вложени обекти,
// като предотвратява грешки, ако някое от междинните свойства е null или undefined.
user.address?.street; // undefined, без грешка

const anotherUser = {};
anotherUser.address?.city; // undefined, без грешка

При проектирането на свои собствени методи за поддръжка на верижност, всеки метод трябва да връща this (препратка към текущия обект), с изключение на последния метод в веригата, който може да връща крайния резултат.

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

  addText(text) {
    this.value += text;
    return this; // Връща this
  }

  addNumber(number) {
    this.value += number;
    return this; // Връща this
  }

  build() {
    return this.value; // Връща крайния резултат
  }
}

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