Tengo la siguiente clase:
class Traffic { constructor(name) { this.name = name; } setEventListeners() { $("#btn").on('click', function() { $(this).text(name); } } } Al hacer clic en el <button id="btn"></button> Esto arroja el error: el name is undefined . Esto tiene sentido para mí, ya que normalmente usaría this.name para acceder a las propiedades del objeto. Sin embargo, debido a que estoy dentro de jQuery, ahora this se refiere al objeto jQuery.
¿Cómo puedo acceder a la propiedad de nombre del objeto Traffic ?
Simplemente puede declarar una nueva variable fuera de la función donde this todavía apunta a la instancia de la clase.
setEventListeners() { const name = this.name; $("#btn").on('click', function() { $(this).text(name); } }