Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problema al asignar valor Booleano por defecto.

Estas en el tema de Problema al asignar valor Booleano por defecto. en el foro de Javascript en Foros del Web. Buenas a todos, y de antemano gracias por el solo hecho de leer mi duda. Ahora vamos al hecho, mi problema es que tengo un ...
  #1 (permalink)  
Antiguo 16/10/2015, 11:24
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 9 años, 1 mes
Puntos: 0
Problema al asignar valor Booleano por defecto.

Buenas a todos, y de antemano gracias por el solo hecho de leer mi duda.
Ahora vamos al hecho, mi problema es que tengo un funcion a la cual le paso por parametro un objeto y dentro de la funcion valido las porpiedades del objeto de esta manera:
Código Javascript:
Ver original
  1. function cuadro(_obj){
  2. //validaciones
  3. this.alto=(_obj.alto)?_obj.alto:150;
  4. this.ancho=(_obj.ancho)?_obj.ancho:this.alto;
  5. this.border=(_obj.border)?_obj.border:true;
  6. //demas codigo
  7. }
  8. //asi envio el objeto
  9. var mirect=new cuadrado({alto:200,ancho:300,border:false});
El problema surge en la tercera validacion, en la que sin importar el valor que le pase a la propiedad border (false o true) siempre me setea el valor en true.
La verdad es que ya prove de todo y aun no logro que esto funciones espero que me puedan ayudar en este problemilla
  #2 (permalink)  
Antiguo 16/10/2015, 14:11
 
Fecha de Ingreso: febrero-2011
Ubicación: Evolandia
Mensajes: 103
Antigüedad: 13 años, 9 meses
Puntos: 10
Respuesta: Problema al asignar valor Booleano por defecto.

Podrías primero resumir tu operador ternario y usar el operador lógico or para definir valores por defecto, luego usar typeof para determinar si esa propiedad existe realmente.

Código Javascript:
Ver original
  1. function cuadrado(_obj){
  2.   //validaciones
  3.   this.alto = _obj.alto || 150;
  4.   this.ancho = _obj.ancho || this.alto;
  5.   this.border = typeof _obj.border == 'undefined' ? true :_obj.border;
  6.   //demas codigo
  7. }
  8. //asi envio el objeto
  9. var mirect=new cuadrado({alto:200,ancho:300, border : false});
  10. console.log(mirect);

Saludos!
  #3 (permalink)  
Antiguo 16/10/2015, 15:30
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema al asignar valor Booleano por defecto.

Muchas gracias funciono perfecto, aunque me quedo la espinita de por que no funcionaba correctamente; pues probe la misma sintaxis solo que seteando false como valor por defecto y ahi si cumplia perfectamente la funcionalidad que necesitaba; pero para metodo practico me quedo con tu respuesta gracias

Etiquetas: boolean, objetos, validacion
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 15:28.