Estoy tratando de cambiar los valores de un objeto usando una función fuera de ese objeto, para poder acceder a esos valores más tarde (en otros objetos).
Soy nuevo en la programación, disculpa si hay algo mal en mi descripción o pregunta.
Por ejemplo,
let myObject = { startTime: '', endTime: '', newId: '', set setStartTime (val) { this.startTime = val } } stopButton.addEventListener('click', () => { const {startTime, endTime, newId} = myObject myObject.setStartTime = new Date() }) console.log(myObject.startTime) Entonces, cuando registro myObject.startTime en la consola, su valor está vacío. Aparentemente, porque solo registra el valor inicial (sin cambios). ¿Por qué sucede esto y cómo puedo solucionarlo?
cuando registro en la consola 'myObject.startTime' - en la consola su valor está vacío
Porque su código cuando se carga por primera vez mostrará el valor inicial de myObject que está vacío. Después de hacer clic en stopButton , cambiará pero no registrará nada, porque console.log(myObject.startTime) fuera de la función, Solution , coloque console.log dentro del clic de stopButton .
var dateNow = null;//declare it globally here stopButton.addEventListener('click', () => { const {startTime, endTime, newId} = myObject myObject.setStartTime = new Date() dateNow = myObject.setStartTime;//<-- assign it value here }) console.log(dateNow )//<-- call it outside of function heresi puedo usar ese nuevo valor (generado dentro de una función) fuera de esa función?
Sí, puede declarar una variable globalmente (fuera de la función) para mantener el valor generado dentro de la función de clic; entonces puedes llamarlo fuera de él.