<script> var e =document.getElementById("btn"); e.addEventListener("click",demo1) function demo1(){ alert("hello1") } e.addEventListener("click",demo2) function demo2(){ alert("hello2") } </script>
上例中,如果demo1引用时,加了括号,则打开页面就会弹出对话框,如果不加括号,则是触发点击事件后,才弹出对话框!
以上可以这么理解:demo1,demo2实际上是指针,其实函数名就是指针。举例:
function fun(){
return 5;
}
var a= fun;
var b=fun();
JS中我们把以上加粗的部分叫做函数,函数是一种叫做function引用类型的实例,因此函数是一个对象。对象是保存在内存当中的,函数名则是指向这个对象的指针。
var a = fun 表示把函数名fun这个指针拷贝一份给变量a,但是这不是函数本身复制了一份。而是函数在 内存中的指向地址给了变量a。
如果函数名后面加上圆括号就表示立即调用(执行)这个函数里面的代码。