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 originalvar persona = function(id,nombre,edad,cantidad_horas,costo_por_hora){
this.id = id;
this.nombre = nombre;
this.edad = edad;
this.cantidad_horas = cantidad_horas;
this.costo_por_hora = costo_por_hora;
var calcular_sueldo = function(){
return (this.cantidad_horas * this.costo_por_hora);
};
var cambiar_cantidad_de_horas = function(valor){
console.log(valor);
this.cantidad_horas= valor
};
return {
getId: id,
getNombre: nombre,
getCantidadDeHoras: cantidad_horas,
sueldo: calcular_sueldo(),
setCantidadDeHoras: cambiar_cantidad_de_horas(50)
/*
setCantidadDeHoras: function(valor){
console.log(valor);
cambiar_cantidad_de_horas(valor);
}*/
// no logro pasar por parametro un valor para setter
}
};
var p1 = new persona(1,"Pedro",35,44,750);
console.log(p1);
console.log(p1.getId);
console.log(p1.sueldo);
console.log(p1.getCantidadDeHoras);
console.log(p1.setCantidadDeHoras);
console.log(p1.getCantidadDeHoras);
console.log(p1.sueldo);