2013-04-02 107 views
3

我有一個名爲showText()功能,從複製文本的形式在其他地方一個段落一些文本。這就是所謂的有以下幾點:何時使用圓括號javascript函數

document.getElementById("mybutton").onclick = showText; 

如果我添加了()來showText結束,這是我從這裏讀類似的答案不解的是調用函數的唯一的辦法是行不通的。

腳本後來它需要()的工作:

window.addEventListener("keypress", function(e) { 
    var keycode = e.keyCode; 
    if (keycode == 13) { 
     showText(); 
    } 
}, false); 

我不知道這到底是怎麼回事。

+0

功能是對象。你的兩個例子說明了函數與調用函數的分配。 – 2013-04-02 22:26:51

回答

9

showText返回函數showText

showText()運行功能showText並返回結果

當您將一個函數像.onclick事件處理程序,它期待一個function

你可以調用一個函數,並將結果返回到這樣一個事件:document.getElementById("mybutton").onclick = showText();提供返回功能函數本身:

function showText() { 
    return function() { 
     alert('hello world'); 
    } 
} 
0

在Javascript中函數是一等公民,這意味着它們可以被分配給一個變量...這是你在做什麼,我第一個...你的onclick基本設置爲您所選擇的功能(告訴瀏覽器,這個被點擊時...調用這個函數)

通過使用()您正在調用該函數..

我也可以做這樣的事情

function test() { 
    alert('Alert something'); 
} 

var a = test; 
a(); 
0

當你有這樣的表述:

onclick = showText; 

右側表達式並分配給左側的結果。如果標識符showText解析爲函數對象,則指定該對象的引用。

如果showText後面緊跟括號中的正式參數列表,即showText(),則使用提供的參數調用該函數並分配結果。形式參數列表可以是空的。

相關問題