首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个调整窗口大小的函数是如何工作的?

这个调整窗口大小的函数是如何工作的?
EN

Stack Overflow用户
提问于 2012-10-05 02:12:43
回答 1查看 95关注 0票数 0

不久前,我请求一个javascript函数,它允许我在浏览器窗口中以设定的时间间隔调整内容的大小。就像,不是每个像素大小的变化。我被赋予了这个功能:

代码语言:javascript
运行
复制
function throttle (func, wait) {
    var throttling = false;
    return function(){
        if ( !throttling ){
            func.apply(this, arguments);
            throttling = true;
            setTimeout(function(){
                throttling = false;
            }, wait);            
        }
    };
}


window.onresize = throttle(function() {
    resize_columns();
}, 20);

该人士表示,当时她/他真的没有时间解释闭包。我还是不明白它是怎么工作的。有人能给我解释一下吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-05 02:17:16

被返回的匿名函数在“throttling”变量上形成一个闭包。因此,即使当堆栈展开时,函数throttle()也“超出了范围”。匿名函数仍有权访问“throttling”变量。

闭包太棒了..我每天都在用它们,它们对我来说就像魔法一样..(一旦你理解了它们是如何在堆上实现的,它就不那么神奇了,但我离题了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12733249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档