バグを発見し、追跡しました。ここで私のコードの簡単な例を見る
ことができます。
if()
結局のところ、関数自体をデバウンスするのではなく、ステートメントをデバウンスする必要があります。
デバウンスをスタンドアロン関数として保持したいのですが、条件を渡す方法がわかりません。
ポインタはありますか?
コードは次のとおりです。
var foo = function(xyz) {
alert(xyz);
};
function setter(func, arg1, arg2) {
return {
fn: func,
arg1: arg1,
arg2: arg2
};
}
function debounce(someObject) {
var duration = someObject.arg2 || 100;
var timer;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
someObject.fn(someObject.arg1);
timer = 0;
}, duration);
}
var toggle = true;
if (toggle) {
debounce(setter(foo, 'The best things in life are worth waiting for.', 1250));
} else {
foo('Instant gratification is sweet!!');
}