viernes, 27 de mayo de 2011

Crear clases y objetos en Javascript

En este artículo veremos cómo crear Clases e instancias de estas clases , es decir objetos.

Para ello expondré un ejemplo real usado en uno de los sitios web creados por Moises Soft : un carrito de compras.

Para llenar los elementos de una cesta de productos , es necesario entre otras cosas un clase llamada Producto .

Veamos cómo CREAR LA CLASE en JavaScript:


function Producto(id, nombre, precio , cantidad) {

this.id = id;
this.nombre = nombre;
this.precio = parseFloat(precio);
if ( isNaN(cantidad))
cantidad = 1;

this.cantidad = parseInt(cantidad);
this.getMonto = function (){ return this.precio * this.cantidad; }

}

Lo que hemos hecho es crear una clase llamada Producto, que tiene como atributos : id: identificador del producto, nombre: nombre del producto, precio: el costo del producto, cantidad : cantidad de elementos de dicho producto.

El constructor (palabra reservada function, nombre de la clase y los parámetros pasados al constructor):

function Producto(id, nombre, precio , cantidad)

La inicialización de los atributos públicos (palabra reservada this.{nombre_atributo} = {valor}) :

this.id = id; // ejemplo


Veamos cómo se crean métodos con el ejemplo de esta clase:

this.getMonto = function (){ return this.precio * this.cantidad; }

Aquí estamos asignando a getMonto , en vez de un valor una función, que devuelve un valor , en este caso es costo total o monto total del producto , multiplicando el precio por la cantidad de productos de dicho tipo.


Veamos cómo CREAR un OBJETO en JavaScript:

Ahora crearemos cada vez que presionemos los botones de adicionar producto a la cesta un Objeto de tipo Producto.

Es algo muy parecido a como lo hacemos en cualquier otro lenguaje de programación como PHP:


item = new Producto(“454545”, “moises soft”, 1000,3);

Luego para accede a sus métodos y atributos:

total = item.getMonto(); // en este ejemplo es 3000 = 1000*3
precio = item.precio


Atributos y métodos privados en Javascript

La forma de hacer que los atributos y/o métodos no sean accesibles desde los objetos o en otras palabras sean privados como se conoce en la programación orientada a Objetos, es cambiar el ámbito de las variables, anteponiendo la palabra reservada var , en vez de usar this

function Producto(id, nombre, precio , cantidad) {

var id = id; // privado
var nombre = nombre; // privado
var precio = parseFloat(precio); // privado
if ( isNaN(cantidad))
cantidad = 1;

var cantidad =parseInt(cantidad); // privado
this.getMonto = function (){ return this.precio * this.cantidad; } // público
}


Ahora al crear un objeto no se puede acceder a los atributos privados o de ámbito local:

item = new Producto(“454545”, “moises soft”, 1000,3);

Luego para accede a sus métodos y atributos:

total = item.getMonto(); // en este ejemplo es 3000 = 1000*3
precio = item.precio // error





Moises Soft (Desarrollo web en Cuba)

No hay comentarios:

Publicar un comentario