У меня проблема с преобразованием некоторых старых плагинов jQuery в Vanilla JS.Возьмите, например, плагин owlCarousel -> https://github.com/OwlCarousel2/OwlCarousel2/blob/develop/src/js/owl.carousel.js
$.fn.owlCarousel = function(option) {
var args = Array.prototype.slice.call(arguments, 1);
return this.each(function() {
var $this = $(this),
data = $this.data('owl.carousel');
if (!data) {
//WHERE THE MAGIC HAPPENS!
data = new Owl(this, typeof option == 'object' && option);
$this.data('owl.carousel', data);
$.each([
'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'
], function(i, event) {
data.register({ type: Owl.Type.Event, name: event });
data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {
if (e.namespace && e.relatedTarget !== this) {
this.suppress([ event ]);
data[event].apply(this, [].slice.call(arguments, 1));
this.release([ event ]);
}
}, data));
});
}
if (typeof option == 'string' && option.charAt(0) !== '_') {
data[option].apply(data, args);
}
});
};
. В определении плагина я сохраняю new Owl('stuff');
в $el.data
и получаю экземпляр объекта в более поздний момент для вызова методов на нем и т. Д.
const owlObj = $owl.data('owl.carousel');
Это также позволяет мне иметь несколько экземпляров плагина, доступных через элементы DOM.
Эта парадигма выбрасывается из окна в Vanilla JS?Как лучше всего хранить экземпляры объектов и извлекать их позднее?
Приветствия!