Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Crear Prototipos Abstractos y funciones Virtuales en Javascript?

Estas en el tema de Crear Prototipos Abstractos y funciones Virtuales en Javascript? en el foro de Javascript en Foros del Web. Buenas caballeros! Después de casi 4 meses sin postear, vuelvo a la carga para documentarme acerca de como proceder para llevar a cabo Clases (prototipos) ...
  #1 (permalink)  
Antiguo 19/02/2014, 19:58
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Pregunta Crear Prototipos Abstractos y funciones Virtuales en Javascript?

Buenas caballeros!

Después de casi 4 meses sin postear, vuelvo a la carga para documentarme acerca de como proceder para llevar a cabo Clases (prototipos) Abstractos y funciones Virtuales en Javascript.

Obviamente, en su defecto busco alguna convención arraigada para simularlos.

Última edición por Albuss; 19/02/2014 a las 20:04
  #2 (permalink)  
Antiguo 19/02/2014, 21:12
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Crear Prototipos Abstractos y funciones Virtuales en Javascript?

Hola! Primero que nada vale aclarar que en javascript al menos todavia no existen las clases, se pueden simular unas especies de pseudo clases usando funciones. Por otro lado los prototypes permiten extender otros metodos a objetos ya conocidos como arrays, strings, objetos html etc. Por ej:

Crear una pseudo clase en javascript:

Código Javascript:
Ver original
  1. function auto() {
  2.  
  3. this.color = "red";
  4. this.logo = "peugeot.png";
  5. this.maxSpeed = "200km/h";
  6.  
  7. this.getMaxSpeed = function() {
  8. return this.maxSpeed;
  9. }
  10.  
  11. }
  12.  
  13. // Inicializacion:
  14.  
  15. window.onload = function() {
  16.  
  17. var auto_inst = new auto();
  18.  
  19. alert(auto_inst.color);
  20. alert(auto_inst.getMaxSpeed());
  21.  
  22. }

De esta forma creas algo similar a una clase y alli puedes accesar a sus metodos y propiedades, hay bastante documentacion al respecto.

Por otro lado existen los prototypes que te ayudan a dar mas funcionalidades a elementos preexistentes por ejemplo:

Código Javascript:
Ver original
  1. String.prototype.puntos_suspensivos = function(limite) {
  2.  
  3. return this.substring(0,limite) + "...";
  4.  
  5. }
  6.  
  7. // Inicializacion
  8.  
  9. window.onload = function() {
  10.  
  11. var texto = "Hola mi nombre es Martin Perez";
  12.  
  13. alert(texto.puntos_suspensivos(17)); // Devuelve "Hola mi nombre es..."
  14.  
  15. }
  #3 (permalink)  
Antiguo 19/02/2014, 21:46
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Crear Prototipos Abstractos y funciones Virtuales en Javascript?

@djaevi , creo que tomas una referencia equivocada.

Como bien dices en Javascript no existen las clases (ni van existir) , Javascript implementa POO mediante prototipos y ejemplos, (lo que serian clases y objetos). Lo que tu dices que es una clase es un prototipo aunque tu lo trates como algo parecido a una clase. Yo ya he trabajado bastante con este sistema y lo conozco, de todas formas lo que yo busco es informacion sobre Prototipos Abstractos y Metodos virtuales para estos.

Que ovbiamente no existen, en su defecto busco una manera de simularlos con reglas de convenciones. Gracias.
  #4 (permalink)  
Antiguo 20/02/2014, 12:55
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: Crear Prototipos Abstractos y funciones Virtuales en Javascript?

Aunque Javascript si emplementa POO, utiliza el estilo de programación absada en prototipos. No esperes tener un estilo puro como Java, por ejemplo. Personalmente no me gusta cuando tratan de hacer lo mismo que en otros lenguajes en lugar de adaptarse.

Un poco sobre prototipos abstractos: http://lab.la-grange.ca/en/javascrip...stract-objects

Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: virtuales
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 16:47.