第一项功能声明使用匿名功能,对<代码>日码/代码>和第二个匿名功能加以关闭,以避免将全球名称空间与<代码>日码<>。 这是一种简单的手工艺,可在 Java本功能内执行数据,并static factors。
第一种/外派职能通常只得到一次使用,这就是为什么从来没有获得名字,而是立即作为匿名职能执行。 然而,如果你需要能够为多重事件创造多重时间,情况恰恰相反。
考虑如下:
var delayBuilder = function() {
var timer = 0;
return function(callback, ms) {
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
}
现在:
var delay = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
相当于:
var delay = delayBuilder();
因此,如果你需要多重拖延(同时不止一个时间过长),你可以做到:
var delay1 = delayBuilder(),
delay2 = delayBuilder(),
...
delayN = delayBuilder();
// And of course, used as:
delay1(callback, ms);
更概括地说,你有职能建立职能,即<代码>funcBuilder和func
(使用“func”一词,因为“功能”是一个保留词)。
var func = funcBuilder(configurationifany);
因此,如果该功能的建设者更为复杂,而且你希望对它正在建设的任何功能进行单一、 throw弃的检查,那么你就可以这样做。
funcBuilder(configurationifany)(etc, etc);
或者就你所贴出的法典而言(尽管这只是简单总结<条码>>准时/代码>,但只是继续树立了榜样):
delayBuilder()(callback, ms);
它实际上减少了使用。 如果你不再使用这一职能不止一次,那么,保持这一职能并作为匿名职能加以执行是没有道理的。 如果你需要建立多种职能,那么保留提及职能建设者就有意义。