Рубрики
Без рубрики

Вызовы метода цепочки в JavaScript

В JavaScript иногда мы можем цеплять вызовы методов, например так: car.start().drive() Это довольно удобно для этого. Вместо того, чтобы писать car.start() car.drive(), мы можем упростить в одной строке. Это возможно, если каждый метод возвращает сам объект. Другими словами, реализация должна быть примерно такой: const char = {start: функция() {console.log(‘старт’) возвращает это}, привод: функция() {console.log(‘привод’) возвращает это}} Важно отметить, что вы не можете использовать функции со стрелками, потому что это в функции со стрелками, используемой в качестве метода объекта, не привязано к экземпляру объекта.

В JavaScript иногда мы можем цеплять вызовы методов, например:

car.start().drive()

Это довольно удобно для этого.

Вместо того, чтобы писать

car.start()
car.drive()

мы можем упростить в одной строке.

Это возможно, если каждый метод возвращает сам объект. Другими словами, реализация должна быть примерно такой:

const car = {
  start: function() {
    console.log('start')
    return this
  },
  drive: function() {
    console.log('drive')
    return this
  }
}

Важно отметить, что вы не можете использовать функции со стрелками, потому что this в функции со стрелками, используемой в качестве метода объекта, не привязана к экземпляру объекта.

Мне нравится постоянно использовать функции со стрелками, и это один из случаев, когда вы не можете.

Вызовы метода с цепочкой хороши, когда вы не возвращаете набор значений из метода, в противном случае вам, очевидно, необходимо назначить вызов метода переменной, а цепочка невозможна:

const result = car.start()
if (result) {
  car.drive()
}

Оригинал: “https://flaviocopes.com/javascript-chaining/”