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