関数メソッドの機能メソッド



関数を実行する様々な方法

  • 関数(メソッド)呼び出し
  • の新しいキーワード呼び出し
  • を使用
  • 関数メソッド.call .apply .bind
  • の使用

    .call .使用方法

    function add(x, y) {
      this.val = x + y;
      console.log(this.val);
    }
    
    let obj = { val: 0 };
    
    add.call(obj, 2, 8);
    function add(x, y) {
      this.val = x + y;
      console.log(this.val);
    }
    
    let obj = { val: 0 };
    
    add.apply(obj, [2, 8]);

    2つの違いがわかりますか.
    を選択します.callでは、パラメータの追加を続行する記事は1つだけです.applyはパラメータを配列に追加する必要があります.

    .bindブート


    call/applyとは異なり、すぐに関数を実行するのではなく、値をバインドした関数を返します.
    function add(x, y) {
      this.val = x + y;
      console.log(this.val);
    }
    
    let obj = { val: 0 };
    
    let boundFn = add.bind(obj, 2, 8) //boundFn은 함수
    boundFn() // add.bind는 여기서 실행된다

    パラメータ順序はcallのように追加できます.
    boundFn()は通常の関数(メソッド)呼び出しのように見えますが、ここでは値がバインドされています.

    apply case

    let arr = [7, 35, 2, 8, 21];
    この配列の最小値Mathを指定します.minを利用して手に入れたい場合はどうすればいいですか?
    let minimum = Math.min.apply(null, arr);
    console.log(minimum);
    この値は意味がないのでnullに変換できます.

    call、applyでプロトタイプ機能を借りる

    function moreThanFive(str) {
      return str.length > 5;
    }
    
    let arr = ['code', 'states']
    上記のコードがあると言います.
    filterメソッドを使用したい場合は、どうすればいいですか?

    arrでfilterメソッドを使用すればよい.
    では、プロトタイプ機能を借りるなら?

    コールの機能を使用する場合は、上記の操作を行います.

    Apply機能を使用するには、配列として後続のパラメータを入力する必要があります.