Что такое цепочка методов

Ответ

Цепочка методов (method chaining) — это паттерн, при котором методы объекта вызываются последовательно, один за другим, через точку. Каждый метод возвращает объект (часто this), что позволяет вызывать следующий метод сразу же.

Пример:

class Calculator {
  constructor(value = 0) {
    this.value = value;
  }

  add(num) {
    this.value += num;
    return this;
  }

  subtract(num) {
    this.value -= num;
    return this;
  }
}

const calc = new Calculator();
calc.add(5).subtract(2).add(3); // value = 6

Плюсы:

  • Удобство и читаемость кода.
  • Сокращение количества временных переменных.

Минусы:

  • Сложнее отлаживать, так как нельзя проверить промежуточные значения.
  • Нарушает принцип Command-Query Separation (методы изменяют состояние и возвращают объект).

Ответ 18+ 🔞

Да ты посмотри, какая хитрая жопа эти программисты придумали! Цепочка методов, блядь. Ну тип, чтобы не писать как последний распиздяй, строчку за строчкой, а всё в одну кучу, красиво.

Представь, у тебя есть объект, ну, как тот самый калькулятор, который в каждом телефоне завалялся. И вместо того, чтобы каждый раз его тыкать и новую команду писать, ты ему раз — add(5), и он тебе себя же возвращает, типа "на, мудак, держи, я ещё жив!". И ты ему сразу, не отпуская, subtract(2). А он опять: "Лови, падла!". И так можно до овердохуища раз.

Пример, смотри, не засыпь:

class Calculator {
  constructor(value = 0) {
    this.value = value;
  }

  add(num) {
    this.value += num;
    return this; // Вот этот финт, блядь! Вернул сам себя!
  }

  subtract(num) {
    this.value -= num;
    return this; // И опять вернул! Закольцевал, сука!
  }
}

const calc = new Calculator();
calc.add(5).subtract(2).add(3); // Итог: 6. Сиди, ебушки-воробушки, и любуйся.

Чем хорош этот цирк?

  • Читается, как похабная записка — слева направо, и всё понятно. Не надо глаз ломать.
  • Меньше этих промежуточных переменных, которые потом, как говно в проруби, всплывают там, где не ждали.

А чем говно?

  • Попробуй отладить эту хуйню, когда всё в одну строку слито! Где там значение после первого add? А нихуя не видно! Придёшь домой, а тебя уже жена с утюгом ждёт.
  • И вообще, это ж нарушение одного принципа, который умные дядьки выдумали. Метод, по-хорошему, должен либо команду отдавать (менять что-то), либо ответ давать (спрашивать). А тут он и меняет, и сразу же себя, подлец, обратно подсовывает. Двурушник, блядь!

Короче, инструмент как топор — можно избу срубить, а можно и по ебалу получить. Думай, бошка, когда используешь.