Почему аргумент функции «превращается» в массив - PullRequest
0 голосов
/ 18 апреля 2020

Я не могу понять, почему первый аргумент обратного вызова для Intersection Observer 'преобразован' в массив.

(function () {
  var observer = new IntersectionObserver(function (entries) {
    // entries is an array
    console.log('entries', entries);
    if (entries[0].isIntersecting) {
      observer.unobserve(entries[0].target);
    }
  });

  var target = document.querySelector('#load'); // this in NOT an array
  console.log('target', target);
  observer.observe(target);
})();
<div id="load">load</div>

1 Ответ

1 голос
/ 19 апреля 2020

Из документации :

Метод IntersectionObserver observe() добавляет элемент к набору целевых элементов, наблюдаемых IntersectionObserver. Один наблюдатель имеет один набор порогов и один root, но может наблюдать за несколькими целевыми элементами на предмет изменений видимости в соответствии с ними. […]

Когда видимость указанного элемента пересекает один из порогов видимости наблюдателя […], обратный вызов наблюдателя выполняется с IntersectionObserverEntry, представляющим изменение пересечения, которое произошло. Обратите внимание, что этот дизайн позволяет обрабатывать изменения пересечения нескольких элементов одним вызовом обратного вызова с использованием массива IntersectionObserverEntry объектов.

(выделено мной) )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...