Foros del Web » Programando para Internet » Javascript »

Por que no me funciona este Switch?

Estas en el tema de Por que no me funciona este Switch? en el foro de Javascript en Foros del Web. hola! Tengo un metodo de clase que hace que la variable A guarde distintos valores segun el argumento que le pasemos a dicho metodo, pero ...
  #1 (permalink)  
Antiguo 16/04/2012, 10:45
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 1 mes
Puntos: 2
Pregunta Por que no me funciona este Switch?

hola!

Tengo un metodo de clase que hace que la variable A guarde distintos valores segun el argumento que le pasemos a dicho metodo, pero no me funciona :(



Código:


Código Javascript:
Ver original
  1. var ClaseCambiarTexto = function(){
  2.    
  3.     this.B; // aqui declaro la variable
  4.  
  5.    this.CambiarTexto = function(array4){
  6.         switch (array4) {
  7.         case 1:
  8.          this.B = "Categorias Generales"; // y aqui le asigno un valor
  9.          break
  10. }}}
  11.  
  12. var ObjetoTexto = new ClaseTexto(); // inicializo el Objeto;
  13.  
  14. A este metodo de clase lo llamo en el html de esta forma :
  15.  
  16. ObjetoTexto.CambiarTexto('1');

Es un ejemplo simplificado, en el código real serian 20 o 30 cases diferentes. El caso es que falla algo ya que el valor de la variable this.B nunca llega a asignarse (en cualquiera de los cases posibles)


Ps. pregunta del foro ¿como hago para que el codigo se va entero sin scrolballrs?
  #2 (permalink)  
Antiguo 16/04/2012, 11:02
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Por que no me funciona este Switch?

No me hagas mucho caso, pero aquí:
var ObjetoTexto = new ClaseTexto(); // inicializo el Objeto;
No seria:
var ObjetoTexto = new ClaseCambiarTexto(); // inicializo el Objeto;
  #3 (permalink)  
Antiguo 16/04/2012, 11:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Por que no me funciona este Switch?

buenas...
además de lo antes mencionado, en un switch/case, creo que los valores no sufren de coerción. de modo que 1 no es lo mismo que '1'. uno es un enteo mientras el otro es un string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 16/04/2012, 11:11
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Por que no me funciona este Switch?

Cita:
Iniciado por zerokilled Ver Mensaje
buenas...
además de lo antes mencionado, en un switch/case, creo que los valores no sufren de coerción. de modo que 1 no es lo mismo que '1'. uno es un enteo mientras el otro es un string.
Es decir si en una regla if (variable B == 1) si seria correcto mientras que en switch tendria que poner ese 1 entre '' estoy en lo cierto?
  #5 (permalink)  
Antiguo 16/04/2012, 11:14
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Por que no me funciona este Switch?

He probado de varias maneras pero tampoco me va , ejemplo :

en el html : ObjetoTexto.CambiarTexto('1') y en el switch : case '1'
  #6 (permalink)  
Antiguo 16/04/2012, 12:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Por que no me funciona este Switch?

el caso de B == 1 es muy distinto al switch. la coerción ocurre principalmente en los operadores; switch no es un operador. si aún no te funciona con el cambio en el case, entonces seguramente hay algún detalle que haz omitido o pasado por alto. si haces una simple prueba en la consola, veras que dependiendo del valor en switch/case, se interpreta uno u otro.

Código:
switch(1){ // luego cambialo a '1';
case 1: console.log('integer'); break;
case '1': console.log('string'); break;
default: console.log('unknown'); break;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: asignacion, clase, objeto, swich
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 16:10.