Paquete | Nivel superior |
Clase | public class arguments |
Herencia | arguments Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Los argumentos se almacenan como elementos de un conjunto: se obtiene acceso al primero como arguments[0]
, al segundo, como arguments[1]
, etc. La propiedad arguments.length
indica el número de argumentos que se pasan a la función. Puede haber diferencia entre el número de argumentos que se pasan y los que declara la función.
A diferencia de las versiones anteriores de ActionScript, ActionScript 3.0 carece de propiedad arguments.caller
. Para obtener una referencia a la función que ha llamado a la función actual, debe pasar una referencia a dicha función como argumento. Encontrará un ejemplo de esta técnica en el ejemplo facilitado para arguments.callee
.
ActionScript 3.0 incluye una nueva palabra clave ...(rest)
cuyo uso se recomienda en lugar de la clase arguments.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
callee : Function
Una referencia a la función que se está ejecutando. | arguments | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
length : Number
El número de argumentos que se pasan a la función. | arguments |
callee | propiedad |
public var callee:Function
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Una referencia a la función que se está ejecutando.
Ejemplo ( Cómo utilizar este ejemplo )
secondFunction()
. La función firstFunction()
tiene un argumento booleano con valor true
para demostrar que secondFunction()
llama correctamente a firstFunction()
y para evitar un bucle infinito en el que cada función llame a la otra.
Como el parámetro callSecond
tiene el valor true
, firstFunction()
llama a secondFunction()
y transfiere una referencia a sí mismo como único argumento. La función secondFunction()
recibe este argumento y lo guarda utilizando un parámetro llamado caller
, que pertenece al tipo de datos Function. Desde secondFunction()
, el parámetro caller
se utiliza para llamar a la función firstFunction
, pero en esta ocasión con el argumento callSecond
definido como false
.
Cuando la ejecución vuelve a firstFunction()
, se ejecuta la sentencia trace()
ya que callSecond
es false
.
package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { private var count:int = 1; public function ArgumentsExample() { firstFunction(true); } public function firstFunction(callSecond:Boolean) { trace(count + ": firstFunction"); if(callSecond) { secondFunction(arguments.callee); } else { trace("CALLS STOPPED"); } } public function secondFunction(caller:Function) { trace(count + ": secondFunction\n"); count++; caller(false); } } }
length | propiedad |
public var length:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
El número de argumentos que se pasan a la función. Puede ser más o menos el que declara la función.
arguments
, como callee
y length
.
package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { public function ArgumentsExample() { println("Hello World"); } public function println(str:String):void { trace(arguments.callee == this.println); // true trace(arguments.length); // 1 trace(arguments[0]); // Hello World trace(str); // Hello World } } }
Tue Jun 12 2018, 02:12 PM Z