function test() {
console.log('test');
}
// два раза запускаем оригинал
for (let i = 0; i < 2; i++) debounce1(test);
// в консоли будет один вывод "test"
// через полсекунды после последнего вызова.
// два раза запускаем ваш вариант
for (let i = 0; i < 2; i++) debounce2(test);
// в консоли ничего не будет.
window.debounce = function (functionToDebounce) {
...
lastTimeout = window.setTimeout(functionToDebounce, DEBOUNCE_INTERVAL);
};
functionToDebounce
— это параметр функции и используется в setTimeout.debounce
, которую потом можно использовать в своих целях.window.addEventListener('resize', function(){
debounce(function(){
console.log('resize');
})
})
function(){
console.log('resize');
}
functionToDebounce
, — функция которая будет выполняться только через 500 мс после последнего вызова.как понять условие if (lastTimeout)
Если верстаете строго по принципу независимых блоков, то да, они должны быть независимы от окружения и содержать полную стилизацию.
Лично я отношусь к этому моменту скептически. Возможно мне не приходилось работать с по-настоящему большими проектами, но на "обычных" сайтах это лишнее.