Código:
Si se fijan funcionQueEjecutaFuncion solo esta declarada para recibir un parametro (el de la funcion que va a ajecutar) por que no sabemos cuantos parametros ocupara la funcion que se mandara llamar(en este caso si lo sabemos, pero funcionQueEjecutaFuncion sera generica y debera ejecutar funciones sin importar si tienen o no parametros)...[hasta aqui todo bien]... y se basa en la clase arguments de AS2 para deteminar los parametros totales pasados a la funcion y su longitud, etc. NOTA: arguments genera una array con cada parametro en una posicion.var miFuncion:Function = function(miVariable:Number,miVariable2:Number):Void { trace("miVariable= "+miVariable); trace("miVariable2= "+miVariable2); }; var funcionQueEjecutaFuncion:Function = function(queFuncion:Function):Void{ queFuncion(/*aqui no se como hacerle*/); }; funcionQueEjecutaFuncion(miFuncion2,"x","y","z",99);
digamos que funcionQueEjecutaFuncion es una funcon que no debe saber cuantos parametros le van a pasar, pero (con ayuda arguments) lo debera determinar y mandarlos dentro de quefuncion(); el problema es que no se como hacerlo, puesto que si hago:
Código:
eso esta bien....pero si hago: trace(arguments); //output= [type Function],x,y,z,99
Código:
envia la matriz completa(como un solo valor) y no se como hacerle para que envie cada posicion como un valor...de acuerdo al numero de posiciones que arguments detecte (y sin perder el tipo de dato que cada posicion tenga)queFuncion(arguments);
se que puedo hacer esto:
Código:
...pero estaria limitando a funcionQueEjecutaFuncion a mandar solo dos parametros...la logica que quiero es que se manden los parametros que arguments detecte (sin importar si son 0 o 100)queFuncion(arguments[0], arguents[1]);
Lo que se me ha ocurrido hasta ahora es tal vez apoyarme en un for y en argumetnts.length... pero no se me ha ourrido nada para meterlos dentro del queFuncion();
Alguna idea, gracias.
PD: no es la primera vez que se ha hecho esto, esto existe, por ejemplo, en la funcion SetTimeout(nombre de funcion, tiempo de retraso, parametros indefinidos que se le pasaran a la funcion separados por comas);