Почему работает эта функция (замыкания в javascript)?

Есть код:
Код
var div = document.querySelector('.test');

    function hide(elem, t) {
        var fadeEffect = setInterval(function () {
            if (!elem.style.opacity) {
                elem.style.opacity = 1;
            }

            if (elem.style.opacity < 0.02) {
                clearInterval(fadeEffect);
                elem.style.display = "none";
            }

            elem.style.opacity -= 0.02;
        }, t)
    }

    div.onclick = function () {
        hide(this, 19);
    }
Ссылка на jsfiddle.
Дает эффект fadeOut, как в jQuery. Я попробовал засунуть нутро сетИнтервала в функцию. И на мое удивление у меня получилось. Но я не понимаю, почему я всё-таки могу вставить свой аргумент t в аргументы ф-ции hide(). Слава богу конечно, что работает, но хотелось бы разобраться!
Просто я думал, что я аргументом t не смогу дотянуться до аргумента времени в сетИнтервале.
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
mashletov
@mashletov
Math.random()
Ничего не понимаю. Ты передаешь в hide параметр t. Внутри hide ты параметр t используешь как аргумент функции setInterval.
почему я всё-таки таки могу вставить свой аргумент t

Потому что ты объявил, что у функции может быть параметр t и передал его.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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