2010-03-03 9 views
12

Quiero pasar un parámetro de datos opcional a algunas devoluciones de llamada, pero solo a devoluciones de llamada que admiten un solo parámetro; en este momento, tengo una base de código de devolución de llamada de tamaño moderado que no puede aceptar ningún parámetro. ¿Cómo puedo verificar qué parámetros admite un objeto Function?¿Cómo puedo determinar el recuento de argumentos de una función en tiempo de ejecución en Flex 3?

+0

Para ser sincero, el diseño huele un poco raro. ¿Puedes publicar algún código que muestre lo que intentas hacer? Porque a mi leal saber y entender, no creo que haya forma de inspeccionar una función desde fuera para determinar la cantidad de parámetros que define en JavaScript o ActionScript (a menos que Patrick lo describa para los miembros de la clase ActionScript), ya que esto es típicamente conocido por adelantado por el desarrollador. –

+1

Chris? ¿Alguna vez encontró una respuesta a esta pregunta? Si es así, ¿te importaría publicar una actualización? – Joshua

Respuesta

2

Si su función se declara en un class utilizar el functiondescribeType devolverá un XML se puede analizar y mirar a su nombre de la función con sus argumentos

+0

No lo es; esta es una función lambda, pasada como devolución de llamada. Parece que no puedo encontrar la manera de obtener más información. –

1

La matriz de argumentos es una matriz de todos los parámetros pasados ​​en una función. Tal vez eso es lo que estás buscando?

function traceArgArray(x:int):void 
{ 
    for (var i:uint = 0; i < arguments.length; i++) 
    { 
     trace(arguments[i]); 
    } 
} 

ejemplo tomado de livedocs.adobe.com

+0

Eso no es realmente tan útil. Sé cuáles son los argumentos dentro de la función, estoy buscando cómo averiguar qué son desde fuera del alcance de la función. –

21

Función es un objeto. Cada función tiene una propiedad de solo lectura llamada longitud que almacena el número de parámetros definidos para la función. Úselo.

Cuestiones relacionadas