2013-04-02 56 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(),则使用提供的参数调用该函数并分配结果。形式参数列表可以是空的。

相关问题