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