JS手写代码篇---手写节流函数

8、节流函数

什么是节流函数?

指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。

与防抖函数有什么区别?

防抖函数是延迟函数执行,直到事件停止触发一段时间后再执行,适用于需要等待事件停止触发后再执行的场景。而节流函数则是控制函数在指定时间内只执行一次,适用于需要控制执行频率的场景。

   function throttle(fn, wait) {
        let preTime = new Date();
        return function () {
            let context = this;
            let args = arguments;
            let curTime = new Date();
            let during = curTime - preTime;
            if (during > wait) {
                // 当时间大于等待时间的时候
                // 执行函数
                fn.apply(context, args);
                // 更新 preTime
                preTime = curTime;
            }
        };
    }

() => {
fn.apply(context , args);//保证函数的上下文和参数与原始调用时一致
} , wait)
}
}


## 8、节流函数

**什么是节流函数?**

指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。

**与防抖函数有什么区别?**

防抖函数是延迟函数执行,直到事件停止触发一段时间后再执行,适用于需要等待事件停止触发后再执行的场景。而节流函数则是控制函数在指定时间内只执行一次,适用于需要控制执行频率的场景。

function throttle(fn, wait) {
let preTime = new Date();
return function () {
let context = this;
let args = arguments;
let curTime = new Date();
let during = curTime - preTime;
if (during > wait) {
// 当时间大于等待时间的时候
// 执行函数
fn.apply(context, args);
// 更新 preTime
preTime = curTime;
}
};
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值