工具函数

工具函数

防抖:

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时

// 防抖
function _debounce(fn,delay){
    var delay = delay || 200;
    var timer;
    return function(){
        var th = this;
        var args = arguments;
        if(timer){
            clearTimeout(timer);
        }
        timer = setTimeout(()=>{
            timer = null;
            fn.apply(th,args)
        },delay)
    }
}

节流:

当持续触发事件时,保证一定时间段内只调用一次事件处理函数

// 节流
function _throttle(fn,interval){
    var last;
    var timer;
    var interval = interval || 200;
    return function(){
        var th = this;
        var args = arguments;
        var now = +new Date();
        if(last && now - last < interval){
           clearTimeout(timer)
           timer = setTimeout(()=>{
               last = now;
               fn.apply(th,args)
           },5000)
        }else{
            last=now;
            fn.apply(th,args)
        }
    }
}

判断一个函数是否js运行时环境内置函数

function isNative (Ctor) {
  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
}
posted @ 2021-01-17 12:10  南华秋水  阅读(107)  评论(0编辑  收藏  举报