Javascript中事件繫結的函式加括號和不加括號的區別
阿新 • • 發佈:2018-11-18
今天在學習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();