美文网首页
手写一个防抖

手写一个防抖

作者: huanghaodong | 来源:发表于2020-04-28 16:13 被阅读0次
function debounce(func, wait, immediate) {

    var timeout, result;

    var debounced = function () {
        var context = this;
        var args = arguments;

        if (timeout) clearTimeout(timeout);
        if (immediate) {
            timeout = setTimeout(function(){
                timeout = null;
            }, wait)
            if (!timeout) result = func.apply(context, args)
        }
        else {
            timeout = setTimeout(function(){
                func.apply(context, args)
            }, wait);
        }
        return result;
    };

    debounced.cancel = function() {
        clearTimeout(timeout);
        timeout = null;
    };

    return debounced;
}

相关文章

  • 前端面试中常见手写函数(包括排序算法)

    手写ajax 手写bind函数 手写防抖、节流函数 防抖:简单说就是一开始不会触发,停下来多长时间才会触发,典型案...

  • 手写防抖

    节流 节流的原理很简单: 如果你持续触发事件,每隔一段时间,只执行一次事件。 根据首次是否执行以及结束后是否执行,...

  • 前端性能优化:手写实现节流防抖

    前端性能优化:手写实现节流防抖 本文首发于 前端性能优化:手写实现节流防抖[https://gitee.com/r...

  • 前端手写

    节流 防抖 用xhr手写axios 函数柯里化 手写promise 手写reduce new 深拷贝 string...

  • 面试秘籍之手写系列

    一、手写call函数 二、手写bind函数 三、手写实现new功能的函数 四、手写reduce函数 五、手写防抖函...

  • 手写一个防抖

  • js 防抖和节流

    防抖 防抖是js优化的重要的一部分,也是面试中手写代码最常考的题目。那么我们为什么要防抖?防抖是什么意思?比如我们...

  • 手写 防抖 节流

    防抖(debounce):一段时间内重复执行的话,只执行最后一次,清除之前的异步任务,重点在清零应用场景: 搜索框...

  • 手写代码系列(持续更新)

    1、手写instanceOf的实现原理 2、手写节流和防抖函数 2.1 节流函数 节流函数原理:规定在一个单位时间...

  • 节流和防抖

    1、什么是防抖、节流,分别解释一下?2、在白纸上手写一个防抖or节流函数,自己任选(限时4分钟)3、react h...

网友评论

      本文标题:手写一个防抖

      本文链接:https://www.haomeiwen.com/subject/gzzmwhtx.html