JackShcherbakov
@JackShcherbakov

Как получить доступ к свойству объекта, из свойства-функции этого самого объекта, которая является обработчиком события?

Имеется:
<body>
  <div id="user2" style="width:500px; height: 250px; background-color: red"></div>
</body>
<script>
  let user = {
      age:24,
    onclick : function(e){
      console.log(this.age);
      console.log(e.currentTarget);
    }.bind(this)
  }
  user2.addEventListener("click", user.onclick)
</script>

Функция-обработчик является свойством объекта user. При клике мне нужно получить возвраст пользователя и объект, который вызвал событие (в моем случае это DIV). Обращаться к user напрямую нельзя. То есть вот этот код проблему не решает:
...
  let user = {
      age:24,
    onclick : function(e){
      console.log(user.age); //так нельзя
      console.log(e.currentTarget);
    }.bind(this)
  }
...
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
class User {
  constructor(age) {
    this.age = age;
  }

  onClick(event) {
    alert(this.age);
  }

// если используется babel, то
  onClick = event => {
    alert(this.age);
  }
}

let user = new User(24);
document.querySelector("#user2").addEventListener("click", user.onClick.bind(user));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы