Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что делает этот код?

Quasar Гуру (2928), закрыт 4 года назад
весь код https://jsfiddle.net/rw1zxymo/

Array.prototype.forEach.call(section, function(e) {
sections[e.id] = e.offsetTop;

});
Лучший ответ
Дмитрий Гуру (3788) 4 года назад
Эта часть вызывает метод forEach, относительно контекста section, передает по очереди все элементы с тегом selection в callback функцию, в которой в объект sections сохраняется последовательность "ключ-значение", где в качестве ключа выступает значение атрибута id каждого select элемента, а значением отступ сверху.

Эта запись аналогична
section.forEach(e => {
sections[e.id] = e.offsetTop;
});
QuasarГуру (2928) 4 года назад
так то же не работает
ДмитрийГуру (3788) 4 года назад
по ссылке https://jsfiddle.net/rw1zxymo/ вроде работает все
Остальные ответы
Denis Основатель проекта Rapprogtain 4 года назад
Этот код показывает на какой части страницы ты, типо home, portfolio и т. д
kjkszpj Знаток (288) 4 года назад
у getElementsByTagName ( который следует заменить на querySelectorAll ) - нет метода forEach... а через call можно взять метод из другого объекта...

Можно еще

[].forEach.call(...)

https://learn.javascript.ru/call-apply-decorators

Его присутствие там бессмысленно, потому что вроде как используется для поддержки старых браузеров, но рядом в коде написано let, который из ES6 )

А в современных браузерах у querySelectorAll есть встроенный forEach, можно прямо

document.querySelectorAll('section').forEach(...)
QuasarГуру (2928) 4 года назад
что то не работает это
Потому что ты не в Москве
Похожие вопросы