Foros del Web » Programando para Internet » Javascript »

Module (patrón de diseño) prob metodo para actualizar datos

Estas en el tema de Module (patrón de diseño) prob metodo para actualizar datos en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/08/2015, 17:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 267
Antigüedad: 20 años, 5 meses
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);
  #2 (permalink)  
Antiguo 20/08/2015, 06:01
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Module (patrón de diseño) prob metodo para actualizar datos

Ten en cuenta que en JavaScript el contexto o valor de la variable this va cambiando y apunta por naturaleza hacia el objeto padre. En caso de que no exista o no se haya indicado de forma explícita en el código será el objeto global window. Eso es lo que ocurre por ejemplo con la función calcular_sueldo.

Lo que puedes hacer es trabajar con las variables (parámetros) de la función constructora en vez de renombrarlas como propiedades de un objeto que no vas a utilizar.
  #3 (permalink)  
Antiguo 20/08/2015, 10:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 267
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Module (patrón de diseño) prob metodo para actualizar datos

gracias, después comento bien como lo puede hacer... y algunas cuestiones que aparecen al respecto.

Etiquetas: diseño, metodo, module, valor, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.