加括号的:函数只要是要调用它进行执行的,都必须加括号。此时,函数实际上等于函数的返回值或者执行效果,当然,有些没有返回值,但已经执行了函数体内的行为,就是说,加括号的,就代表将会执行函数体代码。
不加括号的:都是把函数名称作为函数的指针,一个函数的名称就是这个函数的指针,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
总结:加括号表示执行函数,不加括号表示查看整个函数的代码信息
<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>