Comunidad de diseño web y desarrollo en internet online

Pasar funcion en variable

Citar            
MensajeEscrito el 26 Mar 2008 08:56 am
Hola, alguien sabe si es posible pasar un comando, o una secuencia de comandos a una función detro de una variable?

Lo que pretendo es realizar una función que ejecute aquellos comandos que les pase:

funcionGuay(trace("yupi"));

function funcionGuay(comandos)
{
//ejecutar comandos
};

Gracias!
^^

Por JaviAledo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Mar 2008 05:01 pm
Si la función está definida en la misma línea de tiempo haces:

function funcionGuay(comandos)
{
this[comandos]()
};

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Mar 2008 05:02 pm
Si que se puedeeee, con el objecto Function. Puedes usar una variable de este tipo, como parametro para pasar como argumento una funcion definida por el usuario o nativa, con o sin parametros.
O puedes declarar una variable de este tipo y luego mandarla como argumento ;)
Te pongo ejemplos de ambos cassos, espero te sirva.




Código :

function alert(msg:String):Void {
   trace(msg)
}

function getPerson(nombre:String, edad:Number):Void {
   trace("Nombre: " + nombre + " Edad: " + edad);
}


function execCommand(f:Function, args:Array):Void {
   f.apply(this, args);
}


execCommand(alert, ["hola"]);
execCommand(getPerson, ["Ramiro", 16]);

var fun:Function = trace("holaaaa");
execCommand(fun);

var a:Array = new Array("Parametrossssssssss");
var f:Function = trace;
execCommand(f,a);


Aqui la funcion chida (La perrona, la que mola, la que hace el trabajo sucio) es execCommand
Si te fijas usa como parametro un objeto de tipo Funcion, el cual tiene un método llamado apply (Por favorr ve la ayuda de flash para que lo conozcas y entiendas a fondo), que se encarga de ejecutar la funcion.
Prueba y nos avisas si te sirvio

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 27 Mar 2008 08:47 am
Muchas gracias!
Es prcisamente lo que buscaba!
^^

Por JaviAledo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Mar 2008 03:02 pm
Hey, hace rato que no veía preguntas que valieran la pena. Felicidades : )

Por gustavogarzon

166 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.