En este capítulo vamos a ver una de las claves del potencial de Javascript, la “Programación Orientada a Objetos”.
Introducción a la POO
La Programación Orientada a Objetos es un paradigma de programación que utiliza la abstracción para crear modelos basados en el mundo real. (Mozzilla Foundation)
Si tradicionalmente los programas se constituían de una serie de instrucciones. La POO se puede definir como el desarrollo de programas basado en «objetos» que interactúan y cooperan entre sí.
En la POO los objetos se asemejan a máquinas con una tarea definida que pueden recibir información, procesarla, y compartirla con otros objetos.
Los objetos
Los objetos son «como» grandes variables capaces de contener otras variables (llamadas propiedades) y funciones (llamadas métodos).
En JavaScript además de los objetos predefinidos también puedes definir y crear tus propios objetos.
Existen diferentes maneras de crear nuevos objetos:
1- Definir y crear un objeto único (instancia) (notación Literal)
var persona = { nombre:"Juan", apellido:"Pérez", edad:50, colorOjos:"azul" };
El objeto se declara con la palabra clave «var» y unas llaves que agrupan su contenido.
Las propiedades requieren un nombre y se declaran colocando dos puntos después del nombre y una coma para separar cada sentencia.
Otro modo de definir y crear un objeto único (instancia) es con la palabra clave «new». (Es preferible por simplicidad y rapidez utilizar la primera manera en vez de esta).
var persona = new Object(); persona.nombre = "John"; persona.apellido = "Smith"; persona.edad = 50; persona.ojos = "azules";
2- Definir un objeto constructor
Define un objeto constructor con el que después podemos crear objetos del tipo construido (instancias). Este es el método más común.
(Su paralelismo en otros lenguajes serían las clases)
Tenemos que pensar en el «constructor» como en una plantilla con la que construiremos los objetos. Esta «plantilla» constructora debe albergar las diferentes características (propiedades y métodos) que poseerán los objetos que se construyan.
Los objetos construidos a partir del objeto constructor son las denominadas instancias. Para crear la instancia del objeto tenemos que utilizar el operador «new» seguido del nombre del constructor al que invocamos.
Aunque ya lo explicaremos más adelante, de momento simplemente recuerda que las instancias comparten «prototipo» con el constructor.
Veamos su sintaxis
Ejemplo de constructor:
function Persona (valorNombre, valorApellido, valorEdad) { this.nombre = valorNombre; this.apellido = valorApellido; this.edad = valorEdad; }
El constructor es muy parecido a una función, por eso es recomendable que su nombre comience con una mayúscula para diferenciarlo.
Las propiedades se declaran de un modo ligeramente diferente a los procedimientos anteriores. Las diferencias radican en el uso de «this» en vez del nombre del objeto y en la utilización de argumentos:
Palabra clave «this»: En Javascript utilizamos «this» para referirnos al objeto que contiene el código. Al declarar las propiedades en un objeto constructor debemos utilizar «this», ya que cuando creemos sus correspondientes instancias, estas tendrán diferentes nombres, con lo cual si en el objeto constructor nos referimos a ellas a través del nombre de éste, no las encontrará en las instancias.
Argumentos en el objeto: Lo bueno de utilizar un constructor es que partiendo de él podemos crear infinidad de instancias, pero para que estas instancias nos sean realmente útiles tenemos que poder asignarles diferentes valores a sus propiedades si así nos interesa. Es aquí donde gracias a los argumentos que podemos pasar a la función constructora cuando la llamemos, crearemos instancias con diferentes valores.
Una vez creado el constructor se crean a partir de este las instancias con el operador «new». El operador «new» retorna un objeto basado en el constructor.
Continuando con el ejemplo anterior del constructor, creamos ahora dos instancias con el constructor “Persona”. En el momento de crear la instancia le pasamos los argumentos que serán los valores de las propiedades “nombre”, “apellido” y “edad”.
var cliente1 = new Persona("Ander", "Sagasta", 34); var cliente2 = new Persona("Sara", "Pérez", 19); // Instancias
Posteriormente para acceder a una propiedad de un objeto debemos usar el operador punto «.» entre el nombre del objeto y la propiedad.
Ejemplo:
document.write (cliente1.nombre + " " + cliente1.apellido + " tiene " + cliente1.edad);
Otra manera de acceder a una propiedad, aunque es menos común, es utilizando corchetes. (Notación de tipo array).
cliente1["edad"]
Aquí dejamos el primer capítulo dedicado a la Programación Orientada a Objetos, en el siguiente veremos más sobre las propiedades y los métodos que poseen los objetos.
Dejar una opinión