Para el primer ejercicio esta es mi solucion:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button onclick="mostrarObjeto()">Mostrar Objeto</button>
<script>
function persona(nombre,nacionalidad){
this.nombre = nombre || 'Desconociso' ;
this.nacionalidad = nacionalidad || 'Desconocido';
}
persona.prototype.mostrarNacionalidad=function(){
alert ('La nacionalidad de '+this.nombre+' es '+this.nacionalidad);
}
function medico(nombre,nacionalidad,centroDeTrabajo){
persona.call(this,nombre,nacionalidad);
this.centroDeTrabajo=centroDeTrabajo || 'Desconocido';
}
function medicoEspecialista(especialidad,centroDeTrabajo,nacionalidad,nombre){
medico.call(this,nombre,nacionalidad,centroDeTrabajo);
this.especialidad=especialidad || 'Desconocida';
}
medico.prototype=new persona;
medicoEspecialista.prototype=new medico;
function mostrarObjeto(){
var primerMedico=new medicoEspecialista('traumatologo','Hospital 9 de Octubre','española','Beltran');
var msg = ('El medico '+primerMedico.nombre+' con nacionalidad '+primerMedico.nacionalidad+' trabaja en '+primerMedico.centroDeTrabajo+' y tiene la especialidad de ' +primerMedico.especialidad);
primerMedico.mostrarNacionalidad();
alert(msg);
}
</script>
</body>
</html>
Y para el segundo ejercicio esta:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button onclick="crearObjetos()">Mostrar Objetos</button>
<script>
function Persona(nombre){
this.nombre = nombre || 'Desconociodo'
this.saludar = function (){
alert ('Soy '+this.nombre+' profesor '+this.tipo);
}
}
Persona.prototype.definicion="Una persona es una persona";
function Profesor(nombre,institucionAcademica,tipo){
Persona.call(this,nombre);
this.institucionAcademica = institucionAcademica || 'Desconocido';
this.tipo = tipo || 'Desconocido';
}
function ProfesorInterino(nombre,institucionAcademica,tipo,mesesContratado){
Profesor.call(this,nombre,institucionAcademica,tipo);
this.mesesContratado = mesesContratado;
}
function ProfesorTitular(nombre,institucionAcademica,tipo,anyosTrabajados){
Profesor.call(this,nombre,institucionAcademica,tipo);
this.anyosTrabajados=anyosTrabajados;
}
Profesor.prototype=new Persona();
ProfesorInterino.prototype = new Profesor();
ProfesorTitular.prototype = new Profesor();
function crearObjetos(){
var ProfesorTitular1=new ProfesorTitular('Juan','Universidad de Leon','titular',8);
var msg1 = ('El profesor '+ProfesorTitular1.tipo+' '+ProfesorTitular1.nombre+' ha trabajado durante '+ProfesorTitular1.anyosTrabajados+' anyos en '+ProfesorTitular1.institucionAcademica);
var ProfesorInterino1=new ProfesorInterino('Pedro','Universidad Politecnica de Valencia','interino',5);
var msg2 = ('El profesor '+ProfesorInterino1.tipo+' '+ProfesorInterino1.nombre+' ha trabajado durante '+ProfesorInterino1.mesesContratado+' meses en '+ProfesorInterino1.institucionAcademica);
alert(msg1);
alert(msg2);
ProfesorTitular1.saludar();
ProfesorInterino1.saludar();
}
</script>
</body>
</html>