ホームページ  >  記事  >  ウェブフロントエンド  >  使い捨ての JavaScript 関数を実装するにはどうすればよいですか?

使い捨ての JavaScript 関数を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-23 00:00:31834ブラウズ

How to Implement Single-Use JavaScript Functions?

使い捨て 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。