ホームページ >ウェブフロントエンド >jsチュートリアル >プログラミングにおける一般的なクロージャ アプリケーションのケース
プログラミングにおけるクロージャの一般的な適用シナリオには、特定のコード例が必要です
プログラミングにおいて、クロージャ (Closure) は強力で一般的な概念です。これは、関数がその定義時に字句範囲内の変数にアクセスして操作できることを意味します。クロージャは多くのシナリオで役割を果たすことができます。以下では、いくつかの一般的なアプリケーション シナリオを紹介し、具体的なコード例を示します。
function createCounter() { let count = 0; return function() { count++; console.log(count); } } const counter = createCounter(); counter(); // 输出 1 counter(); // 输出 2
この例では、createCounter
関数は、count
変数にアクセスして変更できる内部関数を返します。 count
変数には外部から直接アクセスすることはできず、count
の値は counter
関数を呼び出すことによってのみインクリメントおよび出力できます。
function debounce(callback, delay) { let timerId = null; return function() { if (timerId) { clearTimeout(timerId); } timerId = setTimeout(callback, delay); } } function inputChange() { console.log('Input changed.'); } const inputElement = document.getElementById('input'); inputElement.addEventListener('input', debounce(inputChange, 500));
この例では、debounce
関数は内部で timerId を定義するクロージャを返します。 ## 変数。
input イベントがトリガーされると、クロージャ内の関数は最初に前のタイマーをクリアし、次に新しいタイマーを設定して、コールバック関数が
lay ミリ秒後に実行されるようにします。
function fetchData(url) { return new Promise(function(resolve, reject) { fetch(url).then(function(response) { resolve(response); }).catch(function(error) { reject(error); }); }); } function handleResponse(response) { console.log(response); } fetchData('https://api.example.com/data').then(handleResponse);
fetchData 関数は Promise を返し、その中にクロージャを定義します。クロージャ内のコールバック関数では、
resolve 関数や
reject 関数などの外部関数のコンテキストにアクセスできます。
以上がプログラミングにおける一般的なクロージャ アプリケーションのケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。