JavaScript Programacion Orientada a Objetos con Javascript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript Programacion Orientada a Objetos con Javascript相关的知识,希望对你有一定的参考价值。
Ú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.
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.
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.
Introducción
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.
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.
Antecedentes
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.
var alerta_nombre = function() { alert("NOMBRE"); };
alerta_nombre();
No se me ocurrÃa otro ejemplo más claro, pero podemos ver que hemos convertido una variable en una función.
Otra curiosidad es el uso de los arrays de una forma bastante similar a los objetos.
var nombres = new Array();
nombres["PEPE"]= "Mi nombre es PEPE";
nombres["PACO"]= "Mi nombre es PACO";
nombres["PEDRO"]= "Mi nombre es PEDRO";
alert(nombres.PEPE);
Conclusión (I)
Entonces, ya visto esto podemos unificar las dos funcionalidades y conseguir algo más o menos elegante para conseguir nuestra clase.
var persona= new Array();
persona["nombre"]= "Pepe";
persona["presentar"]= function() {alert("Mi nombre es " + persona["nombre"])};
persona.presentar();
Conclusion (II)
¿Y si usamos la forma implicita?
var persona = {
nombre: "Pepe",
presentar: function() {
alert("Mi nombre es " + this.nombre)
}
};
persona.presentar();
Se parece algo más a una clase ¿no?
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?
Leer más en aNieto2k
* 1 Reference
* Comments
以上是关于JavaScript Programacion Orientada a Objetos con Javascript的主要内容,如果未能解决你的问题,请参考以下文章
所有javascript数组和对象方法的大O [关闭]
Javascript中的闭包 O__O "…
javascript Usando导出没有javascript para organizar o codigo graphql
当用作哈希时,JavaScript 的数组的大 O 是多少?
JavaScript的佛祖保佑
JavaScript的佛祖保佑