@MargoKomilfo

Почему не работает функция?

Почему так работает:
let slides = document.querySelectorAll('.slider-item'),
    sliderIndex = 0;

showSlides(sliderIndex);

function showSlides(n) {
    slides.forEach(item => item.style.display = 'none');
    dots.forEach(item => item.classList.remove('dot-active'));
}


А вот так не работает:

let slides = document.querySelectorAll('.slider-item'),
    sliderIndex = 0;
    
showSlides(sliderIndex);

let showSlides = n => {
    slides.forEach(item => item.style.display = 'none');
    dots.forEach(item => item.classList.remove('dot-active'));
}


Объясните кто-нибудь когда можно, а когда нет использовать такой метод объявления функций.
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 2
@historydev Куратор тега JavaScript
Валера, настало твоё время
Вызывайте функцию после её инициализации.

let showSlides = n => {
					    slides.forEach(item => item.style.display = 'none');
					    dots.forEach(item => item.classList.remove('dot-active'));
					}

					showSlides(1)


P/S: let - создает переменную в месте где объявлен, если юзать var, она создается в начале документа
Ответ написан
@Swaer
function showSlides(n) этот вид функций инициализируется в начале кода, а не до того, как до неё дойдет строка выполнения, поэтому её можно вызвать до объявление в строке,let showSlides = n => { этот вид функций, создается только, когда доёдет очередь и может быть вызвана только после объявления. Почитай о Function Expression и Function Declaration
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы