@Dubrovin

Как сделать цепную функцию самостоятельно на JS?

Хочу создать простую функцию, назовём её myfunc, которая позволит хранить внутри себя методы и вызывать их по цепочке (chained), например:

myfunc().find( '.selector').on('click', func).css('somecsshere').

Точно также как это сделано в jQuery только со своим набором методов.
Как это можно сделать с минимальным количеством строк и, возможно, с es6 классами?
p.s. Прошу не предлагать готовые решения, пересмотрел их кучу и не понимаю, как это работает (а я хочу именно понять, как это работает в первую очередь), прошу привести короткий кусок кода, который это реализует с пояснениями.
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 1
@domoratskii
Вам нужно каждый раз возвращать текущий объект. Это делается добавлением return this в конце каждого метода.

var life = {
  day: 0,
  up() {
    this.day++;
    return this;
  },
  down() {
    this.day--;
    return this;
  },
}

life.up().up()
console.log(life.day) //2
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы