ホームページ >ウェブフロントエンド >jsチュートリアル >使い捨ての JavaScript 関数を実装するにはどうすればよいですか?
使い捨て JavaScript 関数の実装
JavaScript では、1 回だけ実行できる関数を作成することが望ましい場合があります。 C や Java などの言語では静的変数を使用してこれを実現できますが、JavaScript ではより洗練されたソリューションが提供されます。
クロージャベースの実装
クロージャ。変数を内部にカプセル化します。関数を使用すると、関数が複数回実行されるのを効果的に防ぐことができます。次のコード スニペットは、このアプローチを示しています。
<code class="javascript">var something = (function() { var executed = false; return function() { if (!executed) { executed = true; // Execute the desired actions } }; })();</code>
something() を呼び出すと、関数が 1 回呼び出され、実行フラグが true に設定されます。以降の関数の呼び出しは、executed がすでに true であるため、効果がありません。
Once() ユーティリティ関数
Underscore や Ramda などの多くの JavaScript ライブラリは、この目的を果たす、once() ユーティリティ関数。次のコードは、Lodash から Once() 関数を使用する方法を示しています。
<code class="javascript">import { once } from "lodash"; function something() { // Execute actions } const one_something = once(something); one_something(); // Executes something one_something(); // No effect</code>
Custom Once() Function
ライブラリを使用しない場合は、簡単に独自の Once() 関数を実装します:
<code class="javascript">function once(fn, context) { var result; return function() { if (fn) { result = fn.apply(context || this, arguments); fn = null; } return result; }; }</code>
この関数は、指定された関数 fn をラップし、それが 1 回だけ呼び出されることを保証し、後続の呼び出しのために戻り値をキャッシュします。
クロージャを利用するか、ユーティリティ関数を使用すると、一度だけ実行される JavaScript 関数を作成でき、さまざまなユースケースに便利で汎用性の高いアプローチを提供できます。
以上が使い捨ての JavaScript 関数を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。