2016-09-22 2 views
0

は、我々は機能をデバウンスのスニペットを持っている: Can someone explain the "debounce" function in Javascript反復ではなく再帰で実装されたデバウンス機能の理由は何ですか?この記事で

それはアルゴリズムとして再帰を使用しています。しかし、これは、各ステップが前のステップの幾分より小さいインスタンスを持つ典型的な再帰状況に適合していないようです。再帰を使う利点があるのだろうか?私にとっては、このメソッドは必然的に再帰呼び出しによってコールスタックに負担をかけることになります。誰かがこの再帰的アプローチをバックアップするいくつかの理由を挙げることができますか?ありがとう。

+0

私は本当に眠いのかもしれませんが、どのように機能が再帰的にどのように見えるのでしょうか? – vlaz

+0

再帰は全くありません(非同期擬似再帰もありません)。あなたは再帰呼び出しをどこで見ますか? – Bergi

+0

settimeout()はここで再帰的に呼び出されませんか? –

答えて

0

再帰はありません。

内部キーワードfunctionを、定義されている関数の呼び出しとして間違っていると思います。

これは(異なる)関数を返す関数である場合

ありません。

debounce(foo)に電話すると、関数が返されます。

function foo (foothing) { 
    console.log(foothing) 
} 

debounced_foo = debounce(foo) 

次に、あなたはその関数を呼び出すことができます。

debounced_foo(my_param) 
debounced_foo(my_param) 
debounced_foo(my_param) 

をそして、それはそれだけで立て続けに一度ではなく、何回もそれを行います以外foo()は、行っているだろうか行います。

関連する問題