Mostrando entradas con la etiqueta Crear clases Javascript. Mostrar todas las entradas
Mostrando entradas con la etiqueta Crear clases Javascript. Mostrar todas las entradas

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)