JavaScriptの参照関数、呼び出し関数、コールバック関数


  • 参照関数と呼び出し関数の違い参照関数と呼び出し関数の違いは、関数名の後に括弧()が付いているかどうかに関係します.関数参照は単独でのみ表示されますが、関数呼び出しは必ず括弧に従います.
  • 例をあげる
    //         
    function f(){
        var x = 5;
        return x;
    }
    var a = f;
    var b = f;
    
    console.log(a===b); // true
    //         
    function f2() {
        var x = 5;
        return x;
    }
    var a2 = f2();
    var b2 = f2();
    console.log(a2 === b2);
    
    //         
    function f3(){
        var x = 5;
        return function(){
            return x;
        }
    }
    var a3 = f3();
    var b3 = f3();
    console.log(a3 === b3); // false
    上のコード:コード1とコードの2つの部分は関数参照と関数呼び出しの列であり、戻りはすべてtrueであり、コード3も関数呼び出しの列であり、戻りはfalseである.
    関数の参照と関数の呼び出しの本質的な違いを理解します.参照関数の場合、複数の変数メモリは関数の同じエントリポインタとして記憶されています.したがって、同じ関数では、いくつかの変数の参照に関わらず、それらは同じです.参照タイプ(オブジェクト、配列、関数など)に対してはメモリアドレスと比較されます.彼らのメモリアドレスが同じなら、説明は同じです.しかし、関数の呼び出しには、コード3などがあります.毎回呼び出したときには、新しいメモリアドレスが割り当てられていますので、彼らのメモリアドレスは同じではないので、falseに戻ります.しかし、コード二にとっては、彼らは関数に戻りませんでした.数値だけを返して、メモリアドレスではなく、比較値です.だから、彼らの値は同じです.だから、彼らもtrueに戻ります.また、次のようにオブジェクトの列を実列化してみてもいいです.彼らも異なるメモリアドレスに割り当てられていますので、falseに戻ります.次のコードのテスト:
    function F(){
        this.x = 5;
    }
    var a = new F();
    var b = new F();
    console.log(a === b); // false
  • 関数と一般変数の違いは、データの使い方にあります.関数に関するデータ(またはコード)が実行されます.関数を実行したい場合は、関数名の後に括弧()を付けます.関数に引数が必要な場合は、添付してください.
  • 関数変数の値はコード自体ではなく、コードを格納するメモリ位置の参照を指す.
  • コールバック関数.関数aにはパラメータがあり、このパラメータは関数bであり、関数aが実行された後に関数bが実行されます.この過程をコールバックと呼びます.
  • <head>
        <meta charset="UTF-8">
        <title>Titletitle>
    head>
    <script language="javascript" type="text/javascript">
        function a(callback)
        {
            alert("  parent  a!");
            alert("      ");
            callback();
        }
        function b(){
            alert("      b");
    
        }
        function c(){
            alert("      c");
    
        }
    
        function test()
        {
            a(b);
            a(c);
        }
    
    script>
    <body>
    <h1>  js    h1>
    <button onClick=test()>click mebutton>
    <p>              p>
    body>
    html>
    
    参考資料
    javascript関数式プログラミングで身につけるべき知識点の解説