Javascript no posee todas las características
de los lenguajes orientados a objetos como Java o C++, pero si es capaz de
manejar objetos e incluso crearlos. De hecho si un programa en este lenguaje
es capaz de interactuar con el explorador es gracias a esta capacidad. Javascript
posee algunos objetos predefinidos u objetos intrínsecos como son:
Array,
Boolean,
Date,
Function,
Global, Math,
Number,
Object,
RegExp, y String.
Además el programador puede crear objetos nuevos, con sus propios métodos
y propiedades, adaptados a las necesidades concretas de su aplicación.
Crear un objeto nuevo es tan simple como definir cuales serán sus propiedades
y sus métodos, teniendo en cuenta que cualquier objeto que definamos
ya posee heredados los métodos y propiedades del objeto predefinido
object. En el ejemplo siguiente creamos un objeto
pagina que aclarará la forma de crear
objetos propios:
function pagina (titulo, color, fondo)
{
this.titulo = titulo;
this.color = color;
this.imgfondo = fondo;
this.length = 3;
}
var miPagina = new pagina("Mi página", "Blue",
"cruces.gif");
var nuevapag = new pagina("2ª Página", "White",
"");
Este objeto se crea con el operador new pasándole
como argumentos las propiedades declaradas para este objeto: titulo,
color, imgfondo. La palabra clave this
se usa para referirnos al propio objeto que estamos definiendo. Aún
más podemos crear propiedades nuevas sólo para la variable miPagina,
pero estas propiedades no afectarán al objeto pagina
en sí. Por ejemplo
miPagina.descripcion = "Este es un ejemplo";
alert (miPagina.descripcion);
da como resultado la frase Este es un ejemplo, pero si ahora escribieramos
alert(nuevaPag.descripcion);
obtendríamos undefined pues descripcion
solo es una propiedad de la variable miPagina
no del objeto pagina. Para ampliar un objeto
usamos la propiedad prototype
pagina.prototype.descripcion = "Objeto definido
por mi";
alert(nuevaPag.descripcion);
alert(miPagina.descripcion);
Ahora hemos añadido una propiedad al objeto pagina
y esta propiedad se transmite a las variables de tipo pagina
(mas correctamente instancias de pagina),
por tanto en ambos casos obtendríamos la frase Objeto definido
por mí, que es el valor dado a la nueva propiedad. |