В 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/”