JS中函数名后面的括号加与不加的区别和作用

<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。


如果函数名后面加上圆括号就表示立即调用(执行)这个函数里面的代码。


你可能感兴趣的:(前段制作知识)