关于节流函数

最近再学习作图片懒加载,其中要做滚动函数节流,看到这样一段代码

// 简单的节流函数

//fun 要执行的函数

//delay 延迟

//time  在time时间内必须执行一次

function throttle(fun, delay, time) {

    var timeout,

        startTime = new Date();

    return function() {

        var context = this,

            args = arguments,

            curTime = new Date();

        clearTimeout(timeout);

        // 如果达到了规定的触发时间间隔,触发 handler

        if (curTime - startTime >= time) {

            fun.apply(context, args);

            startTime = curTime;

            // 没达到触发间隔,重新设定定时器

        } else {

            timeout = setTimeout(fun, delay);

        }

    };

};

// 实际想绑定在 scroll 事件上的 handler

function lazyload(event) {}

// 采用了节流函数

window.addEventListener('scroll',throttle(lazyload,500,1000));

别的都能看懂,但是里面var content=this那里没看懂,这里的this不是window吗?后面fun.apply(content,args);岂不是把funthis绑定为window;这样有什么目的? 前端小白,求指导

拉风的咖菲猫
浏览 493回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript