Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
Refactorización de clases ES6: llame a métodos de clase principal de otras clases

Actualmente estoy trabajando en un control deslizante de imagen y tengo un problema con la limpieza y la división de mi código en clases propias. Esta es una versión simplista y mínima, por lo que los constructores y otros métodos quedaron fuera.

 // Main class in slimSlider.js import SliderUI from './slimSlider.ui'; class Slider { #addUI() { this.sliderUI = new SliderUI(this.opts,this.#sliderContainer,this.sliderWrapper,this.sliderElements); } #addUIEventsArrow() { this.sliderUI.arrowContainer.sliderButtonLeft.addEventListener('click', () => this.showPrevSlides()); this.sliderUI.arrowContainer.sliderButtonRight.addEventListener('click', () => this.showNextSlides()); } showNextSlides() { this.#slideTransition(false, 'right'); } showPrevSlides() { this.#slideTransition(false, 'left'); } }

Quiero transferir todos los métodos que controlan los detectores de eventos como #addUIEventsArrow de la clase Slider a SliderUi . Pero, ¿cómo puedo llamar a métodos de clase principal como this.showPrevSlides() y this.showNextSlides() desde SliderUi sin tener la instancia de clase y no heredarla?

 // UI class in slimslider.ui.js export default class SliderUI { #addUIArrows() { this.arrowContainer = {} this.arrowContainer.wrapper = document.createElement('div'); SliderHelpers.setElClass(this.arrowContainer.wrapper,this.#controlCssClasses.container.arrowContainer.name); this.arrowContainer.sliderButtonLeft = this.#addUIArrowsSingle('left'); this.arrowContainer.sliderButtonRight = this.#addUIArrowsSingle('right'); this.controlContainer.appendChild(this.arrowContainer.wrapper); } // final result should be something like this #addUIEventsArrow() { this.arrowContainer.sliderButtonLeft.addEventListener('click', () => this.showPrevSlides()); this.arrowContainer.sliderButtonRight.addEventListener('click', () => this.showNextSlides()); } }

Sería bueno si alguien puede ayudar. Gracias

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda