InicioHazlo Tu MismoCurso de Java Script - Capitulo 8

Curso de Java Script - Capitulo 8

Hazlo Tu Mismo4/28/2012
Java Script orientado a objetos

No todos los desarrolladores están de acuerdo sobre si JavaScript es un lenguaje de programación orientado a objetos o no, pero es indiscutible que es una herramienta excelente para el desarrollo de aplicaciones que trabajen con trabajar con clases y objetos.

Clases y Objetos

Para entender la programacion orientada a objetos debemos primero entender lo que es una clase, pero primero diremos que un objeto es un conjunto de atributos y metodos agrupados.

Una clase es un grupo de objetos que comparten los mismos atributos y métodos, veamos como podemos crear una clase llamada popup, como observareis no hay ninguna diferéncia con una funcion solo que al crearlo usamos new:

<script language="javascript">
// Creamos la clase
function popup ( ) {
// ...
}
ventana = new popup ();
</script>


Los atributos

La clase que acabamos de crear tendrá sus atributos, que podrán ser publicos (accesibles desde fuera del objeto) o privados (solo accesibles desde el código del objeto).

Vamos a añadir un atributo público a la clase que hemos creado para indicar la URL del popup:

<script language="javascript">
// Creamos la clase
function popup ( ) {
// Atributo público inicializado a about:blank
this.url = 'about:blank';
// ...
}
ventana = new popup ();
</script>


Y le añadimos también una clase privada para almacenar el objeto window de la ventana abierta.

<script language="javascript">
// Creamos la clase
function popup ( ) {
// Atributo público inicializado a about:blank
this.url = 'about:blank';
// Atributo privado para el objeto window
var ventana = null;
// ...
}
ventana = new popup ();
ventana.url = 'http://www.taringa.net/';
</script>

Los métodos

Al crear un objeto de tipo imagen se ejecutará el metodo constructor de la imagen que será en el caso de nuestro ejemplo la funcion popup, cuando se ejecuta, este crea el objeto y todas sus variables (atributos) y funciones (metodos).

En el interior de esta función constructor, podemos crear nuevas funciones públicas y privadas que a su vez, podrían ser constructor de un objeto 'hijo', vamos a completar el ejemplo anterior añadiendo un par de metodos.

<script language="javascript">
function
popup ( ) {
// Atributo público inicializado a about:blank
this.url = 'about:blank';
// Atributo privado para el objeto window
var ventana = null;
// Metodo público para abrir el popup
this.abrir = function ( ) {
// Generamos la ventana
ventana = window.open ( this.url );
// Si no hay ventana llamamos al error
if ( ! ventana ) error ( 'El popup ha sido bloqueado' );
}

// Metodo privado para alertar un mensaje en caso de error
var error = function ( texto ) {
// Mostramos el error
alert ( texto );
}
}

ventana = new popup ();
ventana.url = 'http://www.taringa.net/';
ventana.abrir ();
</script>


La visibilidad de los elementos

Los elementos de un objeto ( metodos y clases ) són accesibles desde el exterior del mismo objeto cuando los creamos con this. tal y como hemos observado en el ejemplo con url y abrir:

<script language="JavaScript">
// ...
ventana.url = 'http://www.taringa.net/';
ventana.abrir ();
</script>


Por otro lado tambien hemos creado los objetos ventana y error, pero al crearlos con var solo serán accesibles desde el interior de la clase y sus subclases y funciones:

<script language="JavaScript">
// ...
ventana.url = 'http://www.taringa.net/';
// Llamamos a un metodo privado
// Error: ventana.error is not a function

ventana.error ( 'Hola amigo' );
</script>
Datos archivados del Taringa! original
17puntos
496visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

e
el_megi🇦🇷
Usuario
Puntos0
Posts18
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.