ホームページ > 記事 > ウェブフロントエンド > Javascript クロージャーと関数カリー化の簡単な分析 (グラフィック チュートリアル)
この記事では主に Javascript のクロージャとカリー化について紹介します。分かりやすく、困っている友人は参考にしてください。
クロージャとカリー化は両方とも JavaScript で頻繁に使用され、比較的高度なテクニックです。すべての関数型プログラミング言語はこれら 2 つの概念をサポートしているため、JavaScript の関数型プログラミング機能を最大限に活用したい場合は、次のことを理解する必要があります。これら 2 つの概念を詳しく説明します。実際、クロージャーはカリー化に不可欠な基盤です。
1. カリー化の概念
コンピューターサイエンスにおいて、カリー化とは、複数のパラメーターを受け入れる関数を 1 つのパラメーター (元の関数の最初のパラメーター) を受け入れる関数に変換し、受け入れた関数を返すことです。残りのパラメータを取得して結果を返す新しい関数を作成する手法。この手法は、モーゼス シュンフィンケルとゴットロブ フレーゲによって発明されましたが、論理学者のハスケル カリーにちなんでクリストファー ストラチーによって命名されました。直観的には、カリー化は「いくつかのパラメーターを修正すると、残りのパラメーターを受け入れる関数が得られる」と述べています。したがって、2 つの変数を持つ関数 yx の場合、y = 2 が固定されている場合、1 つの変数を持つ関数 2x が得られます。
カリー化とは、関数のいくつかのパラメータを事前に渡して、単純な関数を取得することです。ただし、事前に渡されたパラメータはクロージャに保存されるため、いくつかの独特の特徴があります。例:
var adder = function(num){ return function(y){ return num + y; } } var inc = adder(1); var dec = adder(-1)
ここでの inc/dec 変数は実際には 2 つの新しい関数であり、次の例の使用法のように括弧を通して呼び出すことができます。カリー化の応用
カリー化の特性に基づいて、より興味深いコードを書くことができます。たとえば、フロントエンド開発では、サーバーからリクエストが返されたときに、特定のページを更新する必要があることがよくあります。要素、つまり部分リフレッシュの概念です。部分更新の使用は非常に簡単ですが、コードが混乱しやすくなります。そして、カリー化を使用すると、コードを大幅に美しくし、保守が容易になります。例を見てみましょう://inc, dec现在是两个新的函数,作用是将传入的参数值(+/-)1
print(inc(99));//100
print(dec(101));//100
print(adder(100)(2));//102
print(adder(2)(100));//102
update("newsPanel") の戻り値は関数であり、必要なパラメーターは文字列であるため、Ajax の更新呼び出しでは、成功するとコールバックが渡されます。 newsPanel パネルを更新するためにサーバーから返されたデータ情報は、この方法でコードの可読性と保守性が向上します。
ファイル上のローカル
jsをPHPで読み取る方法は何ですか?
ファイル上のjsの読み取り、書き込み、変更の手順の詳細な説明
String( ) と . toString() の違い (コードと組み合わせると一目瞭然)
以上がJavascript クロージャーと関数カリー化の簡単な分析 (グラフィック チュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。