JSにおける高次関数



「それは、レイララーが逃げてきた道だ」と言った.“

const powerOf = (exponent) => {
   return num => num ** exponent;
}

あなたがこれを読むことができるならば、あなたは残りを理解することができます


高次関数は、他の関数で動作する関数です.たとえば、これらのうちの1つは引数として関数を受け取り、別の関数を返すことができます.これらの3種類があります.
  • 関数内部関数
  • 関数を変更する関数
  • 制御フローを管理する関数
  • 私にとって幸運なことに、私たちは、主な機能(閉鎖に読書を与える)の中でここで内部の機能例を持ちます.この例では、PowerOfは'指数'パラメータを必要とし、匿名関数を返します.後者は、'指数'時間のためにそれ自身で乗算される' num 'パラメタを受け入れます.
    深呼吸をする.
    powerOf(3)(4);     // powerOf(exponent)(num)
    > 64              // 3 times 4 multiplied by itself = 64, wasn't it?
    
    実際には、別のアプローチを見つけることができます.
    const powerOfThree = powerOf(3);
    powerOfThree(4)
    > 64              // Holy abstraction!
    
    おい、それをチェック!それを読みましょう.まず最初に、' powerof '定数'に' powerof ( 3 )'関数を割り当てました.意味をなす?PowerOf 3はもう一つの引数を必要とします.それで、彼にnum 4と. ta dahを与えましょう:64を返します!

    2 .行くのが難しくなるときは、厳しい


    高次関数は3つの主な組み込み配列メソッドを理解するために重要です.
  • マップ
  • フィルタ
  • 減らす
  • マップは非常に理解しやすいです.コールバックを受け取り、同じ操作を返します.mapは、それが呼び出された配列を突然変異しないので、演算子は新しい配列を返します.どうやって動くの?
    const array1 = [2,4,6,8,10];
    const array2 = array1.map(num => `Number: ${num}`);
    
    まず最初に、配列の要素ごとにコールバックが呼び出され、各要素が' array2 'に追加されます.このコードを読むことは非常に簡単です!

    時々マップを使用する必要はありません.
  • マップを返す配列を使用しない場合
  • コールバックから値を返さない場合
  • さて、これらのケースでは、良いol 'を使用できます.
    const array1 = [2,4,6,8,10];
    const array2 = [];
    for (number of array1) array2.push(`Number: ${number}`);
    

    車輪の再発明


    それらの熟練した理解のために、段階的に、我々の個人的な地図機能を書き直しましょう
    const iMap = function(array, callback) {
        const newArray = [];
        for (number of array) {
            newArray.push(callback(number));
        }
        return newArray;
    }
    
    それは意味をなすか?今すぐそれを読んでみてください!
    (論理的なプロセスはとても理解しにくいので、時間をかけてください)
    高次の関数が関数型プログラミングパラダイムに関連しているだけである.閉じるこの動画はお気に入りから削除されています.
    更なる読書
  • Callback - Wiki
  • Higher-order Function- Wiki
  • In Eloquent Javascript
  • Map - MDN
  • Author post - HowToReadCode

  • ポストスクリプト
    私はこの記事についてのアドバイスは非常に多く、それは私の最初のポストdevと私の最初の試み英語でいくつかのメモを書くことです.したがって、私はそれについての提案に感謝します.
    You're Welcome!