ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で関数を確実に 1 回実行するにはどうすればよいですか?

JavaScript で関数を確実に 1 回実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-23 00:19:03429ブラウズ

How to Ensure Single-Execution of Functions in JavaScript?

JavaScript の単一実行関数

JavaScript では、関数が 1 回だけ実行されるようにすることは、さまざまな手法によって実現できます。

クロージャベースのソリューション

関数への複数の呼び出しによって実行がトリガーされない状況では、クロージャを使用できます。

var onceFunction = (function() {
    var alreadyExecuted = false;
    return function() {
        if (!alreadyExecuted) {
            alreadyExecuted = true;
            // Execute the desired actions
        }
    };
})();

onceFunction(); // Executes
onceFunction(); // No execution (alreadyExecuted is true)

ライブラリ関数

Underscore や Ramda など、いくつかの人気のある JavaScript ライブラリには、once() という名前の便利なユーティリティ関数が用意されています。この関数は関数を引数として受け取り、指定された関数が 1 回だけ実行されることを保証するラッパー関数を返します。

const onceFunction = once(function() { /* Your code here */ });

onceFunction(); // Executes
onceFunction(); // No execution (function is cached)

カスタム ユーティリティ関数

外部ライブラリの場合利用できない場合は、カスタム ユーティリティ関数を作成できます:

const once = (func, context) => {
    let result;
    return () => {
        if (func) {
            result = func.apply(context || this, arguments);
            func = null;
        }
        return result;
    };
};

const oneTimeFunction = once(function() { /* Your code here */ });

oneTimeFunction(); // Executes
oneTimeFunction(); // No execution (function is nullified)

これらの手法は、JavaScript で単一実行関数を作成するエレガントで信頼性の高い方法を提供し、質問に記載されている要件に対応します。

以上がJavaScript で関数を確実に 1 回実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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