Saltar la navegación

POO en JavaScript

Esto es algo más avanzado...

En la página anterior hemos visto cómo acceder a las propiedades y métodos de un objeto.

En esta vamos a ver, sin entrar en detalles, que podemos, entre otras cosas, instanciar objetos.

Constructores

En JavaScript existen constructores, o funciones constructoras, que nos permiten crear nuevos objetos. Estos objetos tendrán sus propiedades y métodos.

Al igual que existían funciones nativas (como "alert") que se pueden usar sin definirlas, hay constructores que no es necesario definir (ya forma parte de JavaScript). Date (fecha) es uno de ellos.

El constructor Date nos permite crear un nuevo objeto de tipo fecha que tiene todos los métodos (getDate, etc.) del objeto Date:

// fecha con formato dd/mm/aaaa
var fecha = new Date();
var dd = fecha.getDate();
var mm = fecha.getMonth();
var aa = fecha.getFullYear();
alert(dd+"/"+(mm+1)+"/"+aa);

Más información sobre estos constructores

Creando un constructor

Veamos cómo crear nuestras propias funciones constructoras para crear objetos partiendo de las mismas.

Partiendo de un nuevo constructor llamado Persona podemos crear una nueva persona llamada Ignacio (un objeto) y acceder a sus datos:

var Persona = function (nombre) {
    this.nombre = nombre;
    var edad = 40;
    this.obTenerDatos = function() {
        return nombre + " : " + edad;
    }
}
var Ignacio = new Persona("Ignacio");
alert( Ignacio.obTenerDatos() );

Como vemos, no podemos acceder directamente a la edad de Ignacio:

alert( Ignacio.edad );

En un objeto puede haber propiedades y métodos públicos y privados. A estos últimos no podemos acceder desde fuera. Esto está relacionado con lo explicado sobre el ámbito de las variables.