Цепной вызов методов
вызов цепочки методов в JavaScript
В 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()
}
Спасибо за внимание.