加括號的:函數只要是要調用它進行執行的,都必須加括號。此時,函數實際上等於函數的返回值或者執行效果,當然,有些沒有返回值,但已經執行了函數體內的行爲,就是說,加括號的,就代表將會執行函數體代碼。
不加括號的:都是把函數名稱作爲函數的指針,一個函數的名稱就是這個函數的指針,此時不是得到函數的結果,因爲不會運行函數體代碼。它只是傳遞了函數體所在的地址位置,在需要的時候好找到函數體去執行。
總結:加括號表示執行函數,不加括號表示查看整個函數的代碼信息
<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>