Foros del Web » Programando para Internet » Javascript »

[Objects].Valor del parametro pasarla a un objeto.

Estas en el tema de [Objects].Valor del parametro pasarla a un objeto. en el foro de Javascript en Foros del Web. Tengo una funcion la cual me llegan "id's"....,por otro lado tengo definida un objeto el cual tiene sus propiedades y metodos; lo que quiero hacer ...
  #1 (permalink)  
Antiguo 17/03/2007, 01:57
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
[Objects].Valor del parametro pasarla a un objeto.

Tengo una funcion la cual me llegan "id's"....,por otro lado tengo definida un objeto el cual tiene sus propiedades y metodos; lo que quiero hacer es tomar el valor del parametro que le llego a mi funcion y acceder a un metodo del objeto definido:
Objeto:
Código HTML:
function obj3c(){
		this.dec=function(){
		   alert('debug');
		}
		this.x=function(){
		   alert('s');
		}
}
Funcion con parametro:
Código HTML:
function changeColor(idColor){
		//todos los idColor tienen nombres de objetos creados.
               //pero para no hacer muchos ifs, necesito hacerlo dinamicamente
         //trate con esto,pero no funciona:
         idColor= new idColor();
         idColor.dec();
}				
Espero su ayuda..
Gracias
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 17/03/2007, 09:02
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: [Objects].Valor del parametro pasarla a un objeto.

Una manera para hacer lo que te propones es eval( idColor+'.dec()' );, es decir:

Código PHP:
<script>

function 
obj3c(){
    
this.dec=function(){
        
alert('debug');
    }
    
this.x=function(){
        
alert('s');
    }
}

function 
changeColor(idColor){
    eval( 
idColor+'.dec()' );
}    

var 
uno=new obj3c();
changeColor("uno");

</script> 
Ya me he enfrentado varias veces a este problema.

Y también al de pasarle la función en vez del id, que se soluciona de manera más elegante así:
Código PHP:
<script>

function 
obj3c(){
    
this.dec=function(){
        
alert('debug');
    }
    
this.x=function(){
        
alert('s');
    }
}

function 
changeColor(queFuncion){
    
uno[queFuncion]();
}    

var 
uno=new obj3c();
changeColor("dec");

</script> 
Pero si a alguien se le ocurre mejor manera de solucionar lo primero, que lo postee por favor.

Byes!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 18/03/2007, 00:29
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: [Objects].Valor del parametro pasarla a un objeto.

Muchas gracias ,si funciona, y fijate que si se me habia venido a la mente usar eval... pero como nunca lo habia usado, solo lo habia visto en ejemplos.. habia hecho esto:
Código HTML:
eval(idColor.dec());
Pero ps bueno, ya ahora si me funciona con lo que me dijiste.
Un saludo,
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 18/03/2007, 01:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: [Objects].Valor del parametro pasarla a un objeto.

Hola:

Todos los objetos cuelgan de un objeto padre, y en este caso estoy casi seguro que se trata del objeto window, así que debería funcionar algo así:

function changeColor(idColor){
window[idColor].dec();
}

La verdad es que creo que la función eval puede omitirse an casi todos los casos que se suelen aplicar.

También puedes elegir el método que quieras usar pasándolo también como parámetro...

function aplicar(objeto, metodo) {
window[objeto][metodo]()
}

var uno = new obj3c();
aplicar("uno", "x");
}

Es una variante de lo que expuso derkenuke (¡Hola !)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 18/03/2007, 06:49
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: [Objects].Valor del parametro pasarla a un objeto.

Sí, es cierto, esa variable con window[objeto].metodo() es la que estaba buscando, gracias caricatos!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 18/03/2007, 09:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: [Objects].Valor del parametro pasarla a un objeto.

Cita:
Iniciado por derkenuke Ver Mensaje
Sí, es cierto, esa variable con window[objeto].metodo() es la que estaba buscando, gracias caricatos!
¡Je, je! , pensaba que le respondía a B**...

Seguimos en contacto...

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 18/03/2007, 23:52
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: [Objects].Valor del parametro pasarla a un objeto.

Igual yo te agradesco caricatos..(y)
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:07.