<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejercicio 2 - Clases</title> <script type="text/javascript"> // Definición de la clase Cliente function Cliente(nombre, direccion, telefono, nif) { this.nombre = nombre; this.direccion = direccion; this.telefono = telefono; this.nif = nif; } // Definición de la clase Elemento function Elemento(descripcion, cantidad, precio) { this.descripcion = descripcion; this.cantidad = cantidad; this.precio = precio; } // Definición de la clase Factura function Factura(cliente, elementos) { this.cliente = cliente; this.elementos = elementos; this.informacion = { baseImponible: 0, iva: 16, total: 0, formaPago: "contado" }; }; // La información de la empresa que emite la factura se // añade al prototype porque se supone que no cambia Factura.prototype.empresa = { nombre: "Nombre de la empresa", direccion: "Direccion de la empresa", telefono: "900900900", nif: "XXXXXXXX" }; // Métodos añadidos al prototype de la Factura Factura.prototype.calculaTotal = function() { for(var i=0; i<this.elementos.length; i++) { this.informacion.baseImponible += this.elementos[i].cantidad * this.elementos[i].precio; } this.informacion.total = this.informacion.baseImponible * this.informacion.iva; } Factura.prototype.muestraTotal = function() { this.calculaTotal(); alert("TOTAL = " + this.informacion.total + " euros"); } // Creación de una factura var elCliente = new Cliente("Cliente 1", "", "", ""); var losElementos = [new Elemento("elemento1", "1", "5"), new Elemento("elemento2", "2", "12"), new Elemento("elemento3", "3", "42") ]; var laFactura = new Factura(elCliente, losElementos); laFactura.muestraTotal(); </script> </head> <body> </body> </html>