Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2015, 17:24
Apsol
 
Fecha de Ingreso: noviembre-2003
Mensajes: 267
Antigüedad: 21 años
Puntos: 4
Module (patrón de diseño) prob metodo para actualizar datos

Hola, antes que nada quiero saludar, desde hace muchos años que no posteaba nada en el foro. Estoy empezando con JavaScript esta vez y estoy experimentando con Module (patrón de diseño) y estoy queriendo poder modificar los atributos de mi objeto y no estoy pudiendo hacerlo… No me deja cambiar los valores del atributo cantidad_de_horas de mi estructurado de ejemplo.

Yo lo que quiero es poder pasarle a el setCantidadDeHoras del return un valor y que cambie la variable cantidad_horas para que si llamo a sueldo revuelva actualizado los datos.

Se que el código esta muy cambiado a lo que quiero pero estuve probando actualizar el valor desde adentro de la clase y nada, espero que me puedan dar una mano.

Muchas gracias.


Código Javascript:
Ver original
  1. var persona = function(id,nombre,edad,cantidad_horas,costo_por_hora){
  2.     this.id = id;
  3.     this.nombre = nombre;
  4.     this.edad = edad;
  5.     this.cantidad_horas = cantidad_horas;
  6.     this.costo_por_hora = costo_por_hora;
  7.  
  8.     var calcular_sueldo = function(){
  9.         return (this.cantidad_horas * this.costo_por_hora);
  10.     };
  11.  
  12.     var cambiar_cantidad_de_horas = function(valor){
  13.         console.log(valor);
  14.         this.cantidad_horas= valor
  15. };
  16.     return {
  17.         getId: id,
  18.         getNombre: nombre,
  19.         getCantidadDeHoras: cantidad_horas,
  20.  
  21.         sueldo: calcular_sueldo(),
  22.  
  23.         setCantidadDeHoras: cambiar_cantidad_de_horas(50)
  24.         /*
  25.         setCantidadDeHoras: function(valor){
  26.             console.log(valor);
  27.             cambiar_cantidad_de_horas(valor);
  28.         }*/
  29.         // no logro pasar por parametro un valor para setter
  30.     }
  31. };
  32.  
  33. var p1 = new persona(1,"Pedro",35,44,750);
  34. console.log(p1);
  35. console.log(p1.getId);
  36. console.log(p1.sueldo);
  37.  
  38. console.log(p1.getCantidadDeHoras);
  39. console.log(p1.setCantidadDeHoras);
  40. console.log(p1.getCantidadDeHoras);
  41.  
  42. console.log(p1.sueldo);