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: eload en 18 de Julio 2016, 05:40
-
Buenas :D , estoy en la parte de herencia con javascript en la entrega CU01150E del tutorial de programación web y se me ha hecho un poco compleja enteder cierta parte, en especial este código:
<script type="text/javascript">
function Profesor (institucion) {
this.institucion = institucion || 'Desconocida';
this.salarioBase = 1200;
}
function ProfesorInterino(mesesContrato, institucion) {
Profesor.call(this, institucion);
this.mesesContrato = mesesContrato || -1;}
function ejemploObjetos() {
var unProfesorInterino = new ProfesorInterino(4, 'Universidad de Chapingo');
var msg = 'El objeto unProfesorInterino tiene ' + unProfesorInterino.mesesContrato + ' meses de contrato';
msg = msg + ' y pertenece a la institución '+unProfesorInterino.institucion;
alert(msg);
}
</script>
Creo la instancia de "unprofesorInternino" y le paso como parametro la institucion="universidad chapingo", se ejecuta la funcion ProfesorInterino y con ello se hace la llamada en "Profesor.call(this, institucion);"
Ahora
¿que objeto esta pasando el this?, ¿unprofesorInternino?
¿Quiere decir que la funcion quedaria mas o menos de esta forma?
function Profesor (institucion) {
UnprofesorInterino.institucion = institucion || 'Desconocida';//
this.salarioBase = 1200;
}
function ProfesorInterino(mesesContrato, institucion) {
//haciendo la simulacion
Profesor.call(UnprofesorInterino, institucion);
this.mesesContrato = mesesContrato || -1;}
En ese caso, unprofesorInterino ya habia capturado el valor de la insitucion al crearse el objeto, lo que faltaria seria asignarlo al objeto profesor no?, estoy complicado en este punto, agradeceria mucho si alguien pudiera explicarme XD.
-
Buenas
En la explicación del curso aparece esto:
Se llama a la función saludar() y como resultado se obtiene “Hola, soy undefined”. ¿Por qué? Porque el objeto this en este caso es la propia función saludar y dicha función no tiene definido atributo nombre, por tanto al tratar de mostrar this.nombre muestra ‘undefined’.
En el ejemplo que comentas tú efectivamente el this sería un objeto ProfesorInterino, porque es la función ProfesorInterino. Ese objeto llama a la función Profesor pasándole el profesor interino que ya tiene unos meses de contrato e institución establecidos.
En el código:
function Profesor (institucion) {
UnprofesorInterino.institucion = institucion || 'Desconocida';//
this.salarioBase = 1200;
}
No veo lógico que escribas UnprofesorInterino.institucion porque UnprofesorInterino no veo que tenga significado dentro de la función.
Si tienes dudas escribe el documento HTML completo con el código de modo que podamos probarlo y ver dónde tienes el problema.
Salu2
-
Gracias por responder, ahora mismo realizo las modificaciones para publicarlas :D