JS調用函數帶不帶括號的區別

加括號的:函數只要是要調用它進行執行的,都必須加括號。此時,函數實際上等於函數的返回值或者執行效果,當然,有些沒有返回值,但已經執行了函數體內的行爲,就是說,加括號的,就代表將會執行函數體代碼。
 
不加括號的:都是把函數名稱作爲函數的指針,一個函數的名稱就是這個函數的指針,此時不是得到函數的結果,因爲不會運行函數體代碼。它只是傳遞了函數體所在的地址位置,在需要的時候好找到函數體去執行。
 
總結:加括號表示執行函數,不加括號表示查看整個函數的代碼信息
 
  <script>
    function demo1(){
        var i = 1;
        return i;
    }
    function demo2(){
        var i = 2;
        alert(i);
    }
    window.onload = function (){
        var e=document.getElementById("btn");
        e.addEventListener("click",demo2);//只有觸發click事件時纔會調用demo2函數
        //e.addEventListener("click",demo2());//雖然是綁定函數,由於帶上括號,會立即執行demo2函數,所以加載頁面時會彈出框
    
        var a=demo1;//a是整個函數體,是一個函數對象
        var b=demo1();//b是函數執行後返回的值5
        alert(demo1);//會彈出整個函數demo1的函數體
        alert(demo1());//會彈出函數demo1的返回值
    }
 
 
  </script>    
</head>
<body>
  <input type="button" id="btn" value="點擊">
</body>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章