Назад к вопросам
Junior
94
questionbank

Как обратиться к методу в цепочке вызовов?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech 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"