@raft88

Jquery, чему равен this?

Привет!

[1,2,3].forEach(function() { console.log(this) }); выведет window три раза. С этим понятно. Но почему код
const $items = $('.list__item');
$items.each(function() { console.log(this) });
выводит поочередно каждый элемент из коллекции?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Потому что forEach массива и each объекта jQuery - это никак не связанные между собой вещи.
Потому что так захотели создатели jQuery.
Ответ написан
Комментировать
thewind
@thewind
php программист, front / backend developer
Читайте про context.
Во втором случае у вас используется jquery обертка, которая для каждой итерации в качестве контекста отдает текущий элемент.
А в первом случае - у вас ошибка синтаксиса, если вы хотели применить функцию к каждому элементу массива. У вас функция пустая, а консоле.лог выполняется в контексте окна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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