節流函數&防抖函數 柯裏化函數
/*
onscroll
onresize
input
。。。。。
節流函數
讓高頻率事件進行減少觸發變成低頻率事件
var bStop = true;
window.onscroll = function() {
if(!bStop){
return;
}
bStop = false;
setTimeout(()=>{
var t = document.documentElement.scrollTop || document.body.scrollTop;
console.log(t);
bStop = true;
},300)
}
函數防抖
當高頻率事件觸發的時候 我們不需要知道頻繁觸發的過程,只需要知道最後的結果
*/
var timer = null;
window.onscroll = function(){
if(timer){
clearTimeout(timer);
}
timer = setTimeout(()=>{
var t = document.documentElement.scrollTop || document.body.scrollTop;
console.log(t);
},300)
}
</script>
/*
惰性函數 和 柯裏化函數
*/
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr]
}else{
return getComputedStyle(obj,false)[attr];
}
}
function getStyle(obj,attr){
if(obj.currentStyle){
getStyle = function(obj,attr){
return obj.currentStyle[attr];
}
}else{
getStyle = function(obj,attr){
return getComputedStyle(obj,false)[attr];
}
}
return getStyle(obj,attr);
}
節流函數&防抖函數 柯裏化函數