Estoy usando este libro para aprender javascript: Secrets of the JavaScript Ninja, Second Edition.
En el libro, hay un código para almacenar funciones en un diccionario como una forma de administrar múltiples funciones en un controlador de eventos.
var store = { nextId: 1, cache: {}, add: function(fn){ if (!fn.id) { fn.id = this.nextId++; this.cache[fn.id] = fn; return true; } } } store.add(myFunction1); store.add(myFunction2); store.add(myFunction3);Pero el libro no explica cómo asignar estas funciones a un controlador de eventos una vez que se almacenan en el diccionario store.cache.
Entonces mi pregunta es, ¿cómo se asignan estas funciones, directamente desde el diccionario, a la función addEventListener? Intenté extraer las funciones individualmente, como store.cache[1].name, pero luego aparece un error que dice que el parámetro no es del tipo 'Objeto'. También traté de usar un bucle para obtener los nombres de las funciones, pero los nombres vuelven como cadenas y el detector de eventos no llama a las funciones cuando los nombres son cadenas. ¿Que me estoy perdiendo aqui? ¡Gracias de antemano!
Puede referirse a ellos por su orden numérico en la matriz. Luego, pase los parámetros según sea necesario.
let myFunction1 = function(p) { console.log(p) } var store = { nextId: 1, cache: {}, add: function(fn) { if (!fn.id) { fn.id = this.nextId++; this.cache[fn.id] = fn; return true; } } } store.add(myFunction1); store.cache[1]("x");