JSの関数名の後ろの括弧と無の違いと役割

2197 ワード

<script>
var e =document.getElementById("btn");
e.addEventListener("click",demo1)

function demo1(){
alert("hello1")
    }
e.addEventListener("click",demo2)
function demo2(){
alert("hello2")
    }
</script>
上記の例では、demo 1参照時に括弧を入れると、ページを開いてダイアログが開きます.括弧を使わないと、イベントをクリックしてからダイアログが開きます.
以上のように理解できます.demo 1、demo 2は実はポインタです.関数名はポインタです.例:
function fun(){
return 5;
)
var a=fun
var b=fun();
JSでは上記の太字部分を関数と呼び、関数はfunction引用タイプという実例です.したがって、関数はオブジェクトです.オブジェクトはメモリに保存されていますが、関数名はこのオブジェクトを指すポインタです.
var a= funは関数名funというポインタを変数aにコピーすると表していますが、これは関数自体がコピーしたものではありません.メモリ内の関数のアドレスが変数aに与えられました.
関数名の後に丸括弧を入れると、すぐにこの関数のコードを呼び出す(実行する)ことを表します.