@maksmaksimovich

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

summ(2).plus(3).minus(1)
чтобы на выходе получилось 4.
Это нужно реализовывать отдельными функциями или в рамках одной можно и как? Интересует такое, чтобы можно было дописывать ещё, к примеру:
summ(2).plus(3).minus(1).minus(2).plus(5)
  • Вопрос задан
  • 1239 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Возвращайте this из всех методов, которые могут быть не последними в цепочке вызовов:

function calc(val) {
  const self = Object.create(calc.prototype);
  self.val = val;
  return self;
}
calc.prototype = {
  plus(val) {
    this.val += val;
    return this;
  },
  minus(val) {
    this.val -= val;
    return this;
  },
  valueOf() {
    return this.val;
  },
};

+calc(0).plus(1); // 1
+calc(1).plus(1).plus(1); // 3
+calc(1).plus(2).plus(3).plus(4).minus(5); // 5
calc(3).plus(7).minus(2) * 3; // 24
99 + calc(1); // 100
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Почитайте это карринг
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы