【发布时间】:2012-12-07 08:47:04
【问题描述】:
我正在阅读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() { ...
【问题讨论】:
-
创建一个新的作用域 :) 只有内部的
function的代码可以访问内部的timer变量。提供一种非全局的方式来访问特定于通常在主函数范围之外的函数的变量。 -
@Ian 这应该是一个答案
-
@MrCode Ehh 另一个冲突,基本上有人已经发布了我所拥有的。而且我没有什么要补充的!我相信他们会这样做:) 谢谢!
-
他的问题仍未得到解答。它不是关于“发生了什么”,而是“为什么分配”(翻译过来,“为什么要创建函数表达式而不是使用声明)
-
@jAndy 我认为 为什么 得到了回答,不是吗?
标签: javascript anonymous-function