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

174
Vistas
Almacenamiento de funciones y sus parámetros en una matriz para llamar más tarde

Me gustaría almacenar varias funciones y sus parámetros en una matriz que luego repetiré y ejecutaré. Al poner los paréntesis alrededor de los parámetros, la función se ejecuta inmediatamente y su valor de matriz se vuelve indefinido. Me gustaría evitar que esto suceda y llamar a la función (con su(s) parámetro(s)) más adelante. Aquí hay un ejemplo de lo que estoy tratando de lograr ...

 function getTableAssignments(callbacks) { $.ajax({ method: "POST", datatype: "jsonp", url: base_url + "users/getTableAssignments/" + event_id }).done(function (data) { tables = data; if (callbacks.length > 0) { $.each(callbacks, function (i, v) { v(); }); } }); } getTableAssignments([func1(param1, param2), func2, func3(param3)]);
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Almacenar los parámetros es el problema. Aquí se explica cómo almacenar las referencias a funciones:

 getTableAssignments([func1, func2, func3]);

Aquí se explica cómo vincular los parámetros a las funciones antes de la ejecución. Esto devuelve una nueva función. Hay otras formas de hacerlo, pero creo que esta sería la más sencilla.

 var boundFunc1 = func1.bind(null, param1, param2); var boundFunc3 = func3.bind(null, param3); getTableAssignments([boundFunc2, func2, boundFunc3]);

También puede almacenar sus parámetros en un objeto como matrices y buscar esos parámetros almacenados con el nombre de la función, pero eso parece complicado, por lo que no explicaré ese método (y requeriría que cambie la llamada para codificar la búsqueda Los parametros).

Si no has leído sobre bind, te recomiendo este video

about 4 years ago · Santiago Trujillo Denunciar

0

Necesitas usar expresiones de función:

 getTableAssignments([ function() {func1(param1, param2); }, func2, function() {func3(param3); } ]);
about 4 years ago · Santiago Trujillo Denunciar

0

Creo que las funciones de flecha serían una forma ingeniosa de hacer esto:

 function func1 (param) { console.log("func1 : " + param); } function func2 () { console.log("func2"); } function func3 (param1, param2) { console.log("func3 : " + param1 + ", " + param2); } function executeFunctions(funcs) { for (var i = 0, len = funcs.length; i < len; i++) { funcs[i](); } } favorateParam = "bob"; executeFunctions([ ()=>func1("dad"), ()=>func2(), ()=>func3("jane",favorateParam) ]);

about 4 years ago · Santiago Trujillo Denunciar
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