Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

110
Vistas
La variable global utilizada en la propiedad del objeto no se actualiza dentro del objeto - javascript

Tengo un objeto configurado así:

 let xVal = 0; const myObj = { infoText: "The value of x is: " + xVal }

Se hace referencia a este texto de información más adelante para mostrar una especie de información sobre herramientas al pasar el cursor sobre un elemento.

 function showTooltip(obj) { targetEl = document.getElementById('targetId'); targetEl.innerHTML = obj.infoText; }

El valor de xVal puede cambiar. El problema con el que me encuentro es que, independientemente de si ese valor ha cambiado o no, cuando paso el mouse sobre mi elemento, siempre mostrará el valor inicial de xVal. Supongo que esto se debe a que myObj.infoText se establece cuando se inicia y extrae el valor inicial de xVal. ¿Cómo puedo obtener myObj.infoText para mostrar el xVal actual y mantenerme al día con los cambios?

EDITAR: aquí hay un mejor ejemplo de mi código, me doy cuenta de que originalmente ofrecí una muestra deficiente.

 let count = 0; let clickVal = 1; const myObj = { cost: 10, infoText: `This displays the current value of your click <br /> Current click = ` + clickVal }; function cardContent(obj) { targetEl = document.getElementById('targetId'); targetEl.innerHTML = obj.infoText; } cardContent(myObj); // initialize card content function handleClick() { count += clickVal; } function upgradeClick() { count -= myObj.cost; clickVal += 1; cardContent(myObj) // attempting to update the text to reflect new value }

Hay un botón que invoca handleClick y otro que invoca upgradeClick . Usando CSS, el siguiente div está oculto y se muestra al pasar el mouse sobre el botón upgradeClick . <div id='targetId'></div> Aquí es donde se muestra el infoText .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar algo como un getter

 let xVal = 0; const myObj = { get infoText() {return "The value of x is: " + xVal;} } function showTooltip(obj) { console.log(obj.infoText); } showTooltip(myObj); xVal = 29; showTooltip(myObj); xVal = 794; showTooltip(myObj);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Crear el objeto cada vez dentro de showTooltip debería funcionar

 let xVal = 0; function showTooltip() { const myObj = { infoText: "The value of x is: " + xVal } console.log(myObj.infoText); } showTooltip(); xVal = 50; showTooltip();

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda