Foros del Web » Programando para Internet » Javascript »

problema de novato con un codigo

Estas en el tema de problema de novato con un codigo en el foro de Javascript en Foros del Web. Lo siento, pero llevo varios dias tratando de comprender por que me sucede y no encuentro el fallo. El codigo es un pequeño ejemplo de ...
  #1 (permalink)  
Antiguo 28/04/2008, 02:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
problema de novato con un codigo

Lo siento, pero llevo varios dias tratando de comprender por que me sucede y no encuentro el fallo.

El codigo es un pequeño ejemplo de un ejercicio:

function Car(sColor,iDoors,iMpg){

this.color=sColor;
this.doors=iDoors;
this.mpg=iMpg;
this.driver=new Array("Mike","Sue");


Car.showColor= function(){alert(this.color);}

}

var car1=new Car("azul",4,2300);


document.write("Coche de color: "+car1.color+"<br/>");
document.write("Equipamiento de puertas: "+car1.doors+"<br/>");
document.write("Texto complementario: "+car1.showColor()+"<br/>");

</script>

Pues bien, la tercera linea de document.write no se me imprime y me da error en la consola diciendome que car1.showColor no es una funcion.

Si le quito los parentesis, o sea: car1.showColor me da undefined
  #2 (permalink)  
Antiguo 28/04/2008, 03:11
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Hola juanromerocruz

debes usar this en lugar de Car donde defines la función showColor.

Igual te seguirá escribiendo undefined dado que la función no está devolviendo una cadena si no la ejecución de un método (una alerta que sí devuelve una cadena)
  #3 (permalink)  
Antiguo 28/04/2008, 03:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo

Ya lo habia probado anteriormente con el this, pero en este caso te devuelve una cadena formada por el codigo, o sea "Texto complementario: function () { alert(this.color); }" literalmente
  #4 (permalink)  
Antiguo 28/04/2008, 03:42
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Hum, yo lo he probado (en FF) y me salta la alerta con el color y me imprime

Cita:
Texto complementario: undefined
Si además de la alerta quieres que te imprima el color debes agregarle que devuelva el dato concreto

Código:
Car.showColor= function(){alert(this.color); return this.color}
  #5 (permalink)  
Antiguo 28/04/2008, 03:53
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo

Tambien lo he probado asi: this.showColor= function(){alert(this.color);return this.color}
y me sigue imprimiendo:Texto complementario: function () { alert(this.color); return this.color; }

  #6 (permalink)  
Antiguo 28/04/2008, 03:55
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Qué curioso ¿con qué navegador te está sucediendo?
  #7 (permalink)  
Antiguo 28/04/2008, 04:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo

Curioso y cabreante.

Lo estoy probando desde el principio con FF 2.0.0.0.1.4 y ahora acabo de probarlo tambien con el IE6. TAMPOCO FUNCIONA
  #8 (permalink)  
Antiguo 28/04/2008, 04:06
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Cosa mandinga....


dime qué pasa cuando lo pruebas desde aquí http://tunait.com/pruebas/jrc.php
  #9 (permalink)  
Antiguo 28/04/2008, 04:11
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo



Sencillamente que funciona correctamente.

Pero a mi que tengo la obsesion de saber por que ocurren las cosas, peor todavia
Por supuesto el javascript esta activado, pero no se que mas puedo hacer
  #10 (permalink)  
Antiguo 28/04/2008, 04:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

bueno, alégrate al menos de saber que no es problema de tu código js.

Prueba a copiar el documento que puse a tu pc y dime si en local te cambia el coportamiento
  #11 (permalink)  
Antiguo 28/04/2008, 04:15
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo

te envio el codigo exactamente como se encuentra, por si vieras algun error, eso es alguna coma, punto parentesis o corchetes que no estuviese donde debiere, por lo de que cuatro ojos ven mas que dos
  #12 (permalink)  
Antiguo 28/04/2008, 04:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Cita:
Iniciado por juanromerocruz Ver Mensaje
te envio el codigo exactamente como se encuentra, por si vieras algun error, eso es alguna coma, punto parentesis o corchetes que no estuviese donde debiere, por lo de que cuatro ojos ven mas que dos
dale, pero ponlo íntegro, incluyendo el html donde está corriendo el código
  #13 (permalink)  
Antiguo 28/04/2008, 04:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo

tu codigo funciona en local. Dejame un momento que confronte el codigo para ver si encuentro el fallo
  #14 (permalink)  
Antiguo 28/04/2008, 04:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema de novato con un codigo


El fallo estaba en document.write("Texto complementario: "+car1.showColor+"<br/>");
que lo puse sin (). Ya lo habia probado anteriormente con y sin parentesis pero como tambien tenia el fallo de no ponerle return this.color, pues una vez por una cosa y otra vez por otra...

gracias por la ayuda.
  #15 (permalink)  
Antiguo 28/04/2008, 04:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema de novato con un codigo

Ah, excelente, encontraste el qué del asunto

Me alegra que lo solucionaras

un saludo
  #16 (permalink)  
Antiguo 28/04/2008, 10:48
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: problema de novato con un codigo

loading............


Bueno, si te sirve. Tambien funciona si haces (fuera de tu funcion classe)

Car.prototype.showColor= function(){alert(this.color);}

}

connection closed.
__________________

Maborak Technologies
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 13:45.