Posted By

pablazo on 09/28/06


Tagged

javascript objetos


Versions (?)

Who likes this?

2 people have marked this snippet as a favorite

arcturus
postNuKe


Programacion Orientada a Objetos con Javascript


 / Published in: JavaScript
 

URL: http://www.anieto2k.com/2006/09/25/programacion-orientada-a-objetos-en-javascript/

  1. Últimamente estamos viendo que están apareciendo muchas librerías en Javascript (mooTools, jQuery, Prototype,..) todas ellas se componen de una o varias clases en Javascript conteniendo cientos de líneas de código englobadas en métodos.
  2.  
  3. Javascript por definición no es un lenguaje orientado a objetos y debido a la potencia de esta programación han tenido que idearselas para conseguir un funcionamiento similar, intuitivo y potente.
  4.  
  5. Me ha parecido muy curioso que mediante el uso de la versión implicita de un array hayan creado una estructura de “objeto” muy clara, similar a las usadas en lenguajes si orientados a objetos. Vamos a ver como crear una clase y por que llegamos a esa estructura.
  6.  
  7. Introducción
  8.  
  9. Javascript es un lenguaje curioso y adictivo, cuando empiezas con él crees que únicamente sirve para hacer 4 efectos y 3 comprobaciones, pero va pasando el tiempo te das cuenta que es mucho más que eso. Es un lenguaje completo y potente.
  10.  
  11. Tiene sus limitaciones como cualquier lenguaje, y el hecho de ser un lenguaje de cliente no es que sea el más apropiado para según que funcionalidades, pero con un poco de idea e imaginación podemos hacer cualquier cosa bien hecha.
  12.  
  13. Antecedentes
  14.  
  15. Una propiedad muy curiosa de Javascript es la propiedad de igualar variables a funciones, eso nos permite crear una variable que cada vez que la llamemos nos ejecutará una funcionalidad especificada.
  16.  
  17. var alerta_nombre = function() { alert("NOMBRE"); };
  18. alerta_nombre();
  19.  
  20. No se me ocurría otro ejemplo más claro, pero podemos ver que hemos convertido una variable en una función.
  21.  
  22. Otra curiosidad es el uso de los arrays de una forma bastante similar a los objetos.
  23.  
  24. var nombres = new Array();
  25. nombres["PEPE"]= "Mi nombre es PEPE";
  26. nombres["PACO"]= "Mi nombre es PACO";
  27. nombres["PEDRO"]= "Mi nombre es PEDRO";
  28. alert(nombres.PEPE);
  29.  
  30. Conclusión (I)
  31.  
  32. Entonces, ya visto esto podemos unificar las dos funcionalidades y conseguir algo más o menos elegante para conseguir nuestra clase.
  33.  
  34. var persona= new Array();
  35. persona["nombre"]= "Pepe";
  36. persona["presentar"]= function() {alert("Mi nombre es " + persona["nombre"])};
  37. persona.presentar();
  38.  
  39. Conclusion (II)
  40.  
  41. ¿Y si usamos la forma implicita?
  42.  
  43. var persona = {
  44. nombre: "Pepe",
  45. presentar: function() {
  46. alert("Mi nombre es " + this.nombre)
  47. }
  48. };
  49. persona.presentar();
  50.  
  51. Se parece algo más a una clase ¿no?
  52.  
  53. Lo que más me llama la atención es que un lenguaje que no está pensado para ser orientado a objetos, se adapte mediente funcionalidades ya implementadas del leguaje a este paradigma de programación. ¿Casualidad?
  54.  
  55. Leer más en aNieto2k
  56.  
  57. * 1 Reference
  58. * Comments

Report this snippet  

You need to login to post a comment.