【发布时间】:2014-06-19 16:39:27
【问题描述】:
我尝试使用 Underscore.js 1.6.0 对函数进行去抖动,但在设置超时后未调用该函数。我希望输出 div 中有一个“o”,但没有。将 _.debounce(echo, 200) 更改为 _.debounce(echo(), 200) 会产生 10 o,这不是我想要的。在 Mac OS X 上的 Chrome 和 Firefox 上的结果相同。
我做错了什么?我是否以错误的方式使用 _.debounce?
有关工作示例,请参阅 http://jsfiddle.net/YmSGL/。
function echo() {
var out = document.getElementById("out");
out.innerHTML = out.innerHTML + "o";
}
for (var i = 0; i < 10; i++) {
var wait = Math.floor(Math.random() * 100);
setTimeout(function() {
console.log("Calling echo @" + _.now());
_.debounce(echo, 200);
}, wait);
}
【问题讨论】:
-
_.debounce返回一个新函数。这就是你必须调用的函数。查看文档中的示例:underscorejs.org/#debounce