Цепочка методов (method chaining) — это приём, позволяющий вызывать несколько методов подряд у одного объекта, не создавая промежуточных переменных. В библиотеке iziToast этот подход применяется ограниченно, но понимание его принципа важно для построения удобных и читаемых конфигураций уведомлений.
Цепочка методов основана на том, что каждый метод возвращает объект, у которого можно сразу вызвать следующий метод. В классическом виде это выглядит так:
object.method1().method2().method3();
Каждый следующий вызов выполняется над результатом предыдущего.
Библиотека iziToast не строится вокруг полноценного fluent-интерфейса (как, например, jQuery), однако частично поддерживает композицию вызовов через:
iziToast.settingsЦепочка в чистом виде встречается реже, но логика последовательного применения настроек и вызовов сохраняется.
Основной способ «связать» несколько действий — это последовательная настройка через объект:
iziToast.show({
title: 'Заголовок',
message: 'Сообщение',
position: 'topRight',
timeout: 5000,
color: 'blue'
});
Здесь вместо цепочки используется декларативный подход — все параметры задаются сразу.
Метод iziToast.settings задаёт базовые параметры,
которые применяются ко всем последующим уведомлениям:
iziToast.settings({
timeout: 3000,
position: 'bottomLeft',
transitionIn: 'fadeIn'
});
После этого каждый вызов iziToast.show() будет
использовать эти настройки по умолчанию.
Фактически это заменяет цепочку:
// Условная цепочка (если бы она существовала)
iziToast
.setTimeout(3000)
.setPosition('bottomLeft')
.setTransition('fadeIn')
.show();
В реальных сценариях методы iziToast вызываются последовательно:
iziToast.settings({
timeout: 2000
});
iziToast.success({
title: 'OK',
message: 'Успешно'
});
iziToast.error({
title: 'Ошибка',
message: 'Что-то пошло не так'
});
Здесь логика аналогична цепочке: сначала задаётся состояние, затем выполняются действия.
Некоторые методы позволяют управлять уже созданными уведомлениями:
iziToast.hide({}, document.querySelector('.iziToast'));
Или:
iziToast.destroy();
Эти методы можно логически объединять:
iziToast.hide({}, element);
iziToast.show({ message: 'Новое сообщение' });
Хотя синтаксической цепочки нет, последовательность действий сохраняет тот же смысл.
При необходимости можно обернуть iziToast в собственный интерфейс с поддержкой chaining:
class ToastBuilder {
constructor() {
this.options = {};
}
title(text) {
this.options.title = text;
return this;
}
message(text) {
this.options.message = text;
return this;
}
color(color) {
this.options.color = color;
return this;
}
show() {
iziToast.show(this.options);
}
}
Использование:
new ToastBuilder()
.title('Заголовок')
.message('Текст')
.color('green')
.show();
Такой подход позволяет реализовать полноценную цепочку методов поверх библиотеки.
show, success, erroriziToast.settings для глобальных
значенийБез цепочки:
iziToast.show({
title: 'A',
message: 'B'
});
С пользовательской цепочкой:
builder.title('A').message('B').show();
Первый вариант проще и нативен для библиотеки, второй — удобен при сложной динамической логике.
settings)show, success,
error)hide, destroy)Такой подход позволяет сохранить баланс между простотой использования iziToast и гибкостью архитектуры.