手ぶれ補正機能。
いくつかの操作を単一の操作に統合します。タイマー機能で指定されたトリガ遅延時間を設定しますが、遅延時間が再びトリガされた場合、それは前にタイマーをキャンセルします。したがって、唯一の最後の操作をトリガすることができます。コードは以下の通りであります:
関数デバウンス(FN、待つ){ タイマーが聞かせて = nullを。 戻り 関数(){ 引数のせ =引数、その= この; タイマー && てclearTimeout(タイマー)。 タイマー= setTimeoutメソッド(関数(){fn.apply(引数、すなわち)}、待機) } }
スロットリング機能。
時間ワンショット機能の一定期間内に。そして、スタート、一度トリガの終了をトリガします。コードは以下の通りであります:
関数スロットル(楽しい、ディレイ){ タイマーを聞かせて = nullを。 聞かせたstartTime = Date.now(); 戻り 関数(){ CURTIMEせ = )(Date.nowします。 残ってみましょう(CURTIME - - =遅延のstartTime)。 そのましょう = この; 引数の聞かせて =の引数を、 clearTimeout(タイマー)。 もし(<= 0のまま{) fun.apply(引数、ということ)。 startTime = Date.now()。 } 他{ タイマ =setTimeout(楽しい、残っています)。 } } }