JavaScript ofrece una aproximación sencilla al modelo de programación orientada a objetos. En definitiva, un objeto es una estructura que encapsula tanto datos (variables) como la funcionalidad para manejarlos.
Los objetos pueden ser definidos utilizando un inicializador:
objeto = {propiedad1:valor1, propiedad2:valor2, …};
objeto1 = {color:»rojo», forma:»círculo», tamano:20};
O a través de una función que haga de «constructor». Esta es una opción más cercana a la filosofía de otros lenguajes orientados a objetos que utilizan clases para la declaración de objetos.
function objeto()
{
this.color = «rojo»;
this.forma = «cuadrado»;
this.tamano = 20;
}
Para crear nuevas instancias del objeto:
objeto2 = new objeto();
Por supuesto, los constructores pueden recibir parámetros, utilizados habitualmente para inicializar el objeto:
function objeto (color, forma, tamano)
{
this.color = color;
this.forma = forma;
this.tamano = tamano;
}
objeto3 = new objeto («rojo», «triangulo», 50);
Una vez creado el objeto, las propiedades se pueden definir (agregar o modificar) de forma dinámica en tiempo de ejecución:
objeto3.peso = 30;
objeto3.nombre = «ventana»;
También se puede modificar el constructor en tiempo de ejecución, utilizando la palabra clave ‘prototype‘:
objeto.prototype.estado = null;
objeto4 = new objeto («rojo», «circulo», 30, «solido»);
A partir de JavaScript 1.1 los parámetros definidos mediante índices en lugar de nombres deben ser referenciados con índices. Los parámetros definidos mediante nombres deben ser referenciados a través de dichos nombres. La excepción a esta regla son los objetos generados a partir de elementos HTML, que permiten el acceso a sus propiedades (por ejemplo, elementos de un formulario) a través de índices (que siguen el orden de creación de la página) o sus propios nombres.
objeto4[10] = «Otra propiedad»;
cadena = objeto[10];
El acceso a las propiedades de los objetos se lleva a cabo a través del operador de alcance ‘.’ (punto). Por ejemplo, si se crean objetos que contienen a otros objetos. El acceso a las propiedades más internas se haría:
objeto_superior.obj_nivel_1.obj_nivel2.propiedad_obj_nivel_2
Los objetos también pueden definir y encapsular su propia funcionalidad a través de métodos (funciones internas). Estas funciones se definen como una función cualquiera y luego se añaden como las demás propiedades del objeto:
// declaración del método
function muestraCaracteristicas ()
{
document.write («color: «+ this.color + «forma: » + this.forma);
}
// constructor
function objeto (color, forma, tamano)
{
this.color = color;
this.forma = forma;
this.tamano = tamano;
this.muestraCaracteristicas = muestraCaracteristicas;
}
// instanciación y utilización del objeto
objeto5 = new objeto («rosa», «cubo», 60);
objeto5.muestraCaracteristicas();
A partir de JavaScript 1.1, los objetos pueden ser eliminados de memoria utilizando el operador ‘delete‘:
delete objeto5; // objeto5 deja de estar disponible
–
Artículo (C) Epsilon Eridani.