实现防抖函数


// 防抖就是,事件触发 delay 秒后再执行,如果有重新的触发,重新计时
function debounce(func, delay) {
    if(typeof func !== 'function') {
        return
    }
    let timer = 0
    return function () {
        if (timer) {
            clearTimeout(timer)
            timer = null
        }
        timer = setTimeout(() => {
            func.apply(this, arguments)
        }, delay);

    }

}
function setName(name) {
    console.log('防抖', name)
}
const debounceSetName = debounce(setName, 100)
debounceSetName('1')
setTimeout(() => {
    debounceSetName('2')
}, 100);
setTimeout(() => {
    debounceSetName('3')
}, 200);

你可能感兴趣的:(前端,javascript,开发语言)