gpt4 book ai didi

javascript - 将自执行匿名函数分配给 javascript 中的变量有什么好处?

转载 作者:行者123 更新时间:2023-11-29 17:19:51 26 4
gpt4 key购买 nike

我正在阅读 post about how to fire a function after a window resize was complete并遇到了一些将自执行匿名函数分配给变量的示例:

var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();

$(window).resize(function() {
delay(function(){
alert('Resize...');
//...
}, 500);
});

与传统用法相比,使函数操作数自动执行有什么区别/好处?即

var delay = function() { ... 

最佳答案

主要原因是命名空间变量。函数引入了一个新的变量作用域。在上面的示例中,timer 没有破坏全局命名空间,同时仍然可供需要它的代码使用。


因为我显然需要澄清:

目标是在函数外有一个变量:

var timer;

function delay() {
// use timer
}

因为如果变量在函数内部,每次都会重新初始化。不过,我们希望在函数之外有一个持久值。

不过在上面的代码中,timer 是一个全局变量。我们不希望那样。为避免这种情况,我们将变量关闭在一个新范围内,以便 delay 函数可以访问它,但不能全局访问:

var delay = (function () {
var timer;

return function () {
// use timer
};
})();

delay 现在和以前一样是一个函数,它可以在自身之外使用 timer,但 timer 不在全局范围内。

关于javascript - 将自执行匿名函数分配给 javascript 中的变量有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com