serendipityApe / javascriptPromotion

资深前端必备的编码问题
3 stars 0 forks source link

防抖 #7

Open serendipityApe opened 2 years ago

serendipityApe commented 2 years ago

题目 implement basic debounce()

封装一个debounce()函数实现防抖。

例子


var test=document.getElementById('test');
//input dom元素
let debounced=debounce(() =>{
console.log(test.value)
},1000)

test.oninput=debounced //input停止输入1s后,执行console.log(input.value)


>答案

function debounce(func,wait){ let timer=null; return function(){ console.log(timer) if(timer){ clearTimeout(timer); } timer=setTimeout(() => { func.apply(this,arguments); }, wait);

}

}