Uncaught TypeError: Невозможно прочитать свойство 'clientX' из неопределенного при передаче события - PullRequest
0 голосов
/ 27 октября 2018

При попытке запустить такой код в браузере:

var k = function(e) {
    return e.clientX;
};
var abc = function() {
    alert(k());
};
document.querySelector("body").addEventListener("click", abc);

Отображается ошибка:

Uncaught TypeError: Cannot read property 'clientX' of undefined

При этом, когда я отображаю результат события, не передавая его вдругая функция, все работает

 var k = function(e) {
     alert(e.clientX);
};
document.querySelector("body").addEventListener("click", k);

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Когда вы выполните

document.querySelector("body").addEventListener("click", abc);

в функции abc (), вы получите событие в качестве параметра, поэтому вы можете объявить функцию abc, как показано ниже,

var abc = function(event) {
    alert(k());
};

, чтобы получить желаемоерезультат, вам нужно передать событие в функцию k (), как показано ниже

var abc = function(event) {
    alert(k(event));
};
0 голосов
/ 27 октября 2018

k ожидает событие в качестве аргумента.Вам нужно добавить этот параметр в функцию abc, а затем передать его при вызове k.

var k = function(e) {
  return e.clientX;
};
var abc = function(event) {
  alert(k(event));
};
document.querySelector("body").addEventListener("click", abc);
Click on the text here.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...