< button id = "elem" > Click me < /button> < script > class Menu { handleEvent(event) { // mousedown -> onMousedown let method = 'on' + event.type[0].toUpperCase() + event.type.slice(1); this[method](event); } onMousedown() { elem.innerHTML = "Mouse button pressed"; } onMouseup() { elem.innerHTML += "...and released."; } } let menu = new Menu(); elem.addEventListener('mousedown', menu); elem.addEventListener('mouseup', menu); < /script>¿Podría alguien ayudarme a entender qué sucede en esta sección del código? Gracias.
handleEvent(event) { // mousedown -> onMousedown let method = 'on' + event.type[0].toUpperCase() + event.type.slice(1); this[method](event); }event.type[0].toUpperCase() -- this will return first character of your event name in upper case.(eg for submit event, it will return `S` ) event.type.slice(1) -- this will return you all characters of event name except first character. (eg for submit event , it will return `ubmit`) Entonces estás concatenando arriba con on .
Después de eso, en la última línea de la función, está llamando a la función derivada que generó a partir de la cadena anterior, por ejemplo onSubmit .
En su caso, parece que está capturando el evento mousedown y luego convirtiendo ese evento en una cadena onMousedown() y llamando a su método onMousedown() .