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的佛祖保佑