[TIL/JavaScript値の関数として


[TIL/JavaScript値の関数として

  • JavaScriptの関数が他の言語の関数と異なる点は、関数が値であってもよい点です.
  • の値の特徴は、変数に含めることができることです.
  • function a(){}
    上記の関数aは、変数aに含まれる値である.

    方法

  • 関数は、オブジェクトの値として格納することができる.
  • a = {
        b:function(){
        }
    };
  • キーはオブジェクトに変数として機能し、propertyと呼ばれます.
  • の価格が関数であれば、方法と言います.
  • けいすう

  • 関数は、他の関数のパラメータとして渡すことができる.
  • function cal(func, num){
        return func(num); // func 함수를 호출하며 num을 첫 번째 인자로 전달한다. 
    }
    function increase(num){
        return num+1;
    }
    function decrease(num){
        return num-1;
    }
    alert(cal(increase, 1)); // 2
  • 関数増分および数値1は、関数calのパラメータとして伝達される.
  • 関数calは、1番目のパラメータ伝達のインクリメントを実行し、2番目のパラメータ番号1がパラメータ伝達として使用される.
  • 関数増分は計算結果を返し、関数calは再びその値を返します.
  • 戻り値

  • 関数は、他の関数の戻り値として使用することができる.
  • function cal(mode){
        var funcs = {
            'plus' : function(left, right){return left + right},
            'minus' : function(left, right){return left - right}
        }
        return funcs[mode];
    }
    alert(cal('plus')(2,1)); // 3
  • 関数calを呼び出すと、「plus」という値がパラメータで渡されます.
  • オブジェクトを含む変数funcsにキー値として渡されます.
  • 「plus」の値を持つ関数を返します.
  • 2と1をパラメータとして渡し,2+1=3を出力する.
  • 配列内の値


    もちろん配列の値としても使用できます.
    var process = [
        function(input){ return input + 10;},
        function(input){ return input * input;},
        function(input){ return input / 2;}
    ];
    var input = 1;
    for(var i = 0; i < process.length; i++){
        input = process[i](input);
    }
    alert(input); // 60.5
  • processという配列には、3つの関数が含まれています.
  • に配列された長さに従って繰り返し文を回転させ、変数入力に対してそれぞれ異なる式を与える.
  • 出力
  • 1+10=11=11+11*11=21=21=21/12/2=60.5.
  • 第一類公民

  • 関数のような多目的オブジェクトを1次オブジェクトと呼ぶ.
  • 一級オブジェクトの条件

  • 変数またはデータに割り当てることができる必要があります.
  • オブジェクトのパラメータとして渡すことができる必要があります.
  • オブジェクトの戻り値として使用できる必要があります.
  • P.S.


    ▼JavaScriptでは、関数の拡張性が見られます.そのため、一級オブジェクトとは何かを理解しました.🙂

    Reference

  • 値としての関数とコールバックby生活符号化
  • 第1レベルのオブジェクトとは?by Lazysoul