Autor Tema: JavaScript Constructores con herencia diferencias entre call y apply CU01150E  (Leído 2226 veces)

JuansT

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 44
    • Ver Perfil
Muy buenas, adjunto los códigos de respuesta al ejercicio CU01150E del manual de programación web con JavaScript:

EJERCICIO 1:
Código: [Seleccionar]
<!DOCTYPE html>
<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function persona(nombre,nacionalidad){
this.nombre = nombre;
this.nacionalidad = nacionalidad;
}
persona.prototype.mostrarNacionalidad = function(){alert(this.nacionalidad);}

function medico(centroTrabajo,nombre,nacionalidad){
this.centroTrabajo = centroTrabajo;
persona.call(this,nombre,nacionalidad);
}
medico.prototype = new persona();

function medicoEspecialista(especialidad,centroTrabajo,nombre,nacionalidad){
this.especialidad = especialidad;
medico.call(this,centroTrabajo,nombre,nacionalidad);
}
medicoEspecialista.prototype = new medico();

function start(){
var medicoObj = new medicoEspecialista("pediatría","hospital san Juan", "Pedro", "Español");
medicoObj.mostrarNacionalidad();
}

</script>
</head>
<body onload="start()">
</body></html>

EJERCICIO 2:
Código: [Seleccionar]
<!DOCTYPE html>
<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function persona(nombre){
this.nombre = nombre;
}
persona.prototype.definicion = "ser humano";
persona.prototype.saludar = function(){alert("hola soy: " + this.nombre);}

function profesor(institucionAcademica,nombre){
this.institucionAcademica = institucionAcademica;
persona.call(this,nombre);
}
profesor.prototype = new persona();

function profesorInterino(mesesContrato,institucionAcademica,nombre){
this.mesesContrato = mesesContrato;
profesor.call(this,institucionAcademica,nombre);
}
profesorInterino.prototype = new profesor();

function profesorTitular(anosTrabajados,institucionAcademica,nombre){
this.anosTrabajados = anosTrabajados;
profesor.call(this,institucionAcademica,nombre);
}
profesorTitular.prototype = new profesor();

function start(){
var profesorTitular1 = new profesorTitular(8,"univesidad de león","Juan");
profesorTitular1.saludar();
}

</script>
</head>
<body onload="start()">
</body>
</html>
« Última modificación: 09 de Abril 2017, 21:24 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:JavaScript. Constructores con herencia en cadena call/apply. CU01150E
« Respuesta #1 en: 10 de Febrero 2017, 15:50 »
Los dos ejercicio están bien resueltos.

Lo único, lo mismo que te comente en el anterior ejercicio sobre empezar por mayúsculas los nombres de las funciones que definen un tipo de objeto.

Saludos. ;D

JuansT

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 44
    • Ver Perfil
Re:JavaScript. Constructores con herencia en cadena call/apply. CU01150E
« Respuesta #2 en: 10 de Febrero 2017, 17:43 »
Cierto! lo trataba como una función más pero ahora ya puedo diferenciarlo, muchas gracias!
« Última modificación: 09 de Abril 2017, 21:22 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".