Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: C3PO en 06 de Abril 2016, 12:42
-
Hola, llevo un par de días dándole vueltas y no soy capaz de encontrar el error:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
function persona(nombre,pais){
this.nombre = nombre;
this.nacionalidad = pais;
}
persona.prototype.mostrarNacionalidad = function(){
alert('Soy de:'+this.nacionalidad);
}
function medico(lugarCurro,nombre,nacionalidad){
persona.call(this,nombre,nacionalidad);
this.centroTrabajo = lugarCurro;
}
medico.prototype = new persona();
function medicoEspecialista(especialidad,lugarCurro,nombre,nacionalidad){
medico.call(this,lugarCurro,nombre,nacionalidad);
this.especialidad = especialidad;
}
medicoEspecialista.protoype=new medico();
function ejemploObjetos(){
var medico1 = new medicoEspecialista('medicina deportiva','Madrid','Juan','Español');
medico1.mostrarNacionalidad();
alert('Hola soy:'+medico1.nombre+'\n soy médico especialista en:'+medico1.especialidad+'\n trabajo en:'+medico1.centroTrabajo+'\n soy de:'+medico1.nacionalidad+);
}
</script>
</head>
<body>
<button onclick="ejemploObjetos()">Medico</button>
</body>
</html>
Gracias de antemano.
-
Hola, aquí sigo dándole vueltas al "dichoso" código. Tras investigar he llegado a una conclusión, pero no a la solución. Este es el código:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
function persona(nombre,pais){
this.nombre = nombre;
this.nacionalidad = pais;
}
persona.prototype.mostrarNacionalidad = function(){
alert('Soy de:'+this.nacionalidad);
}
//persona.prototype.mostrarNacionalidad = 'prueba3';
function medico(lugarCurro,nombre,nacionalidad){
persona.call(this,nombre,nacionalidad);
this.centroTrabajo = lugarCurro;
}
medico.prototype = new persona();
function medicoEspecialista(especialidad,lugarCurro,nombre,nacionalidad){
medico.call(this,lugarCurro,nombre,nacionalidad);
this.especialidad = especialidad;
}
medicoEspecialista.protoype=new medico();
function ejemploObjetos(){
var medico1 = new medicoEspecialista('medicina deportiva','Madrid','Juan','Español');
medico1.mostrarNacionalidad();
//alert(medico1.mostrarNacionalidad);
alert('Hola soy:'+medico1.nombre+'\n soy médico especialista en:'+medico1.especialidad+'\n trabajo en:'+medico1.centroTrabajo+'\n soy de:'+medico1.nacionalidad);
}
</script>
</head>
<body>
<button onclick="ejemploObjetos()">Medico</button>
</body>
</html>
Si utilizo las 2 líneas comentadas:
persona.prototype.mostrarNacionalidad = 'prueba3';
alert(medico1.mostrarNacionalidad);
En vez de:
persona.prototype.mostrarNacionalidad = function(){
alert('Soy de:'+this.nacionalidad);
}
medico1.mostrarNacionalidad();
Me deja ejecutar el código entero, pero al invocar mostrarNacionalidad me da: undefined. Por más vueltas que le doy no acabo de encontrar el problema.
-
Hola C3PO,
no veas, para encontrarlo. He encontrado dos cosillas:
alert('Hola soy:'+medico1.nombre+'\n soy médico especialista en:'+medico1.especialidad+'\n trabajo en:'+medico1.centroTrabajo+'\n soy de:'+medico1.nacionalidad+);
sobra un + en la última declaración de variable --> +medico1.nacionalidad+
medicoEspecialista.protoype=new medico();
La declaración de protoype --> prototype
Saludos!!!!
-
Gracias bermartinv!!!
Si había encontrado el "+" que sobraba en la última declaración de variables: (+medico1.nacionalidad+), está corregido en en el 2º código que mande.
Pero el error "medicoEspecialista.protoype=new medico();" me lo he tragado pese haber repasado el código unas cuantas veces. Ya estaba entrando en modo DESESPERACIÓN.
Gracias de nuevo.