Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Polimorfismo en Javascript : ¿como tratarlo?

Estas en el tema de Polimorfismo en Javascript : ¿como tratarlo? en el foro de Javascript en Foros del Web. Buenas caballeros! D e seguido junto al post de como Crear Prototipos Abstractos y funciones Virtuales en Javascript? . Creo un nuevo post para ver ...
  #1 (permalink)  
Antiguo 19/02/2014, 23:28
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Polimorfismo en Javascript : ¿como tratarlo?

Buenas caballeros!

De seguido junto al post de como Crear Prototipos Abstractos y funciones Virtuales en Javascript?.
Creo un nuevo post para ver como tratar el polimorfismo en Js, esta vez tratando un supuesto , que es el siguiente : http://w3processing.com/index.php?subMenuItemId=329

Hay exponen un "supuesto" de como tratar un método polimorficamente en Javascript, aquí el código que ellos exponen :



Código Javascript:
Ver original
  1. function Person(age, weight) {
  2.     this.age=age;
  3.     this.weight=weight;
  4.     this.getInfo=function() {
  5.       return "I am " + this.age + " years old " +
  6.         "and weighs " + this.weight +" kilo.";
  7.     }
  8.   }
  9.  
  10.   function Employee(age, weight, salary){
  11.     this.salary=salary;
  12.     this.age=age;
  13.     this.weight=weight;
  14.     this.getInfo=function() {
  15.       return "I am " + this.age + " years old " +
  16.         "and weighs " + this.weight +" kilo " +
  17.         "and earns " + this.salary + " dollar.";
  18.     }
  19.   }
  20.  
  21.   Employee.prototype= new Person();
  22.   Employee.prototype.constructor=Employee;
  23. // The argument, 'obj', can be of any kind
  24. // which method, getInfo(), to be executed depend on the object
  25. // that 'obj' refer to.
  26.   function showInfo(obj) {
  27.     document.write(obj.getInfo()+"<br>");
  28.   }
  29.  
  30.   var person = new Person(50,90);
  31.   var employee = new Employee(43,80,50000);
  32.   showInfo(person);
  33.   showInfo(employee);

Dado el siguiente Supuesto y habiéndolo ejecutado, pregunto ¿realmente no están sobrescribiendo el método padre ? , yo no veo polimorfismo por ningún lado. Si la respuesta a mi pregunta es negativa, por favor, explicadme donde está el uso del polimorfismo en ese código.

De ser afirmativa, que alguien pueda tratar un ejemplo verdadero de polimorfismo y explicarlo. Gracias.
  #2 (permalink)  
Antiguo 20/02/2014, 12:30
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Polimorfismo en Javascript : ¿como tratarlo?

Y entonces, según tú, ¿como es verdadero polimorfismo? El ejemplo de la wikipedia también sobreescribe métodos.


Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 20/02/2014, 14:05
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Polimorfismo en Javascript : ¿como tratarlo?

El uso de subtipos es un ejemplo de polimorfismo, tenés objetos de distinto tipo que responden a un mismo mensaje, con lo cual tu función showInfo es polimorfica.
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 20/02/2014, 19:50
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Polimorfismo en Javascript : ¿como tratarlo?

Cita:
Iniciado por Aijoona Ver Mensaje
El uso de subtipos es un ejemplo de polimorfismo, tenés objetos de distinto tipo que responden a un mismo mensaje, con lo cual tu función showInfo es polimorfica.
Y como sabe el interprete cual ejecutar? se que en C++ se tiene que hacer una referencia en tiempo de ejecución, pero js es un lenguaje scrip.
  #5 (permalink)  
Antiguo 21/02/2014, 08:57
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Polimorfismo en Javascript : ¿como tratarlo?

El interprete mira el prototipo de la instancia, y sigue la cadena hasta encontrar el método.

Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: sobreescribir
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 14:25.