-1
function parallax(event) {
  console.log(this.quertySelectorAll('.layer'));
}
document.addEventListener('mousemove', parallax);

И если я правильно понял второй аргумент функции addEventLisener необходим для передачи событий в качестве аргумента event в функцию parallax

Pilaton
  • 3,563
  • 1
    В вашем случае this это объект из контекста которого вызывается метод – Aziz Umarov May 04 '21 at 17:52
  • а если такой код в тело функции parallax console.log(event.clientX); как в ивент получает данные о местоположении мыши?\ – Тахир May 04 '21 at 18:26
  • Может браузер передает:)) – Aziz Umarov May 04 '21 at 18:36
  • @Тахир event - это объект события, его создаёт браузер при каждом движении мыши по странице, и у этого объекта сразу задаётся ключ clientX и прочие. А слушатель, добавленный через addEventListener, если видит такое событие, то вызывает ваш метод parallax, помещая в него объект события в первый аргумент. –  May 04 '21 at 18:47
  • Выходит браузер регистрирует и передает значения в первый аргумент вызываемой функции? – Тахир May 04 '21 at 19:27
  • А все уже ответили спасибо большое)) – Тахир May 04 '21 at 19:28
  • Это я и хотел узнать)) – Тахир May 04 '21 at 19:28

2 Answers2

2

В вашем случае это this - document. Второй параметр addEventLisener это метод который будет вызван из контекста document. Но удивительно то что если вызвать paralax из другого контекста то this будет равен ему.

Aziz Umarov
  • 22,567
  • 2
  • 10
  • 33
1

Если функция вызвана не круглыми скобками, а каким-то другим механизмом, то нужно читать документацию этого механизма, чтобы понять, что именно он делает с this.

В вашем случае метод addEventListener объекта document создаёт слушатель события mousemove. И этот слушатель при наступлении события вызывает метод parallax, устанавливая его this равным document.

Слушатель может это сделать так же, как и мы сами можем установить любой this для любой функции в момент её вызова, например методом call:

parallax.call(document.body); // тут у вашей функции this будет равен body

Также этот слушатель, кроме this, передаёт в функцию произошедшее событие как первый аргумент. Если событие называлось mousemove, то при его наступлении в первый аргумент функции передастся событие данного типа (объект типа MouseEvent).