1. 程式人生 > >Javascript中事件繫結的函式加括號和不加括號的區別

Javascript中事件繫結的函式加括號和不加括號的區別

今天在學習javascript中的時候遇到了一個問題,我將此問題簡化,抽取部分程式碼,如下

  • 說明:#fname為一個按鈕,test是一個普通函式

test函式

function test() {

alert("執行test函式");
}
  • 在js程式碼中為id為fname的文字框新增一個滑鼠點選事件

$("#fname").click(test());

 

 

然而網頁載入完之後,提示框就立即彈出資訊"執行test函式";本來我的目的是點選按鈕再彈出資訊,為什麼我沒點選就自動彈出資訊呢?我在想會不會是後面函式寫的有問題,於是我把這行程式碼修改為  $("#fname").click(varusername);   就有點選後才彈出資訊的效果了!(執行了繫結的事件) 

總結:

不帶括號是引數傳遞,引數就是函式本身;帶括號是函式呼叫了,這時候函式會直接執行。

 

eg:  test為函式名

var test1=test();   //直接呼叫且執行函式

var test2=test;     //給test2引用了test()函式,但不立即執行\

test2()==test();