JavaScript基礎16--関数ステップ


関数のステップ
関数の定義
  • 関数宣言
  • 関数式
  • new Function
  • 関数宣言
    function foo () {
         
    
    }
    
    関数式
    var foo = function () {
         
    
    }
    
    関数宣言と関数式の違い
  • 関数宣言には名前が必要です.
  • 関数宣言は、関数が向上し、事前解析段階で作成されました.声明の前後に
  • を呼び出すことができます.
  • 関数式は、変数割り当て
  • と類似しています.
  • 関数式は、匿名関数
  • のような名前がなくてもよい.
  • 関数式には変数が含まれていません.実行段階において作成されたもので、式の実行後に呼び出しが可能になる必要があります.
    以下は条件によって関数を定義する例です.
    if (true) {
         
      function f () {
         
        console.log(1)
      }
    } else {
         
      function f () {
         
        console.log(2)
      }
    }
    
    以上のコードの実行結果は、ブラウザによって異なる.
    しかし、関数式を使って上記の問題を解決できます.
    var f
    
    if (true) {
         
      f = function () {
         
        console.log(1)
      }
    } else {
         
      f = function () {
         
        console.log(2)
      }
    }
    
    関数の呼び出し方法
  • 一般関数
  • 構築関数
  • オブジェクト方法
  • 関数内thisが指す異なるシーン
    関数の呼び出し方式は、thisが指す違いを決定した.
    呼び出し方式
    非厳格モード
    コメント
    一般関数の呼び出し
    window
    厳格モードではundefinedです.
    コンストラクタ呼び出し
    インスタンスオブジェクト
    プロトタイプの方法でもthisはインスタンスオブジェクトです.
    オブジェクトメソッドの呼び出し
    この方法の対象
    隣り合う相手
    イベントバインディング方法
    イベントオブジェクトをバインド
    タイマー関数
    window
    関数もオブジェクトです
  • のすべての関数はFunctionの例
  • である.
    //    new Function          
    //   new Function ([arg1[, arg2[, ...argN]],] functionBody)
    // new Function ('  1','  1','  1', '   ')
    //1.                       
    //2.                   
    //3.        ,          ,              
    var sum = new Function('a', 'b', 'return a + b');
    console.log(sum(2, 6));