何时使用带有javascript函数的括号

时间:2013-04-02 22:18:43

标签: javascript

我有一个名为showText()的函数,它将表单文本框中的一些文本复制到其他地方的段落中。它的调用如下:

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

如果我将()添加到showText的末尾,它将无法工作,我从阅读中了解到类似的答案,这是调用函数的唯一方法。

稍后在脚本中它需要()工作:

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

我不确定这里发生了什么。

3 个答案:

答案 0 :(得分:10)

showText返回函数 showText

showText()运行函数showText并返回结果

将函数附加到.onclick等事件处理程序时,它需要function

你可以调用一个函数并将结果返回给这样的事件:document.getElementById("mybutton").onclick = showText();如果函数本身返回一个函数:

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

答案 1 :(得分:0)

在Javascript函数中是一等公民,这意味着他们可以被分配给一个变量......这就是你正在做的第一个......你基本上将onclick设置为你选择的函数(告诉你浏览器,当点击它时...调用此函数)

通过使用()你正在调用函数..

我也可以这样做

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

var a = test;
a();

答案 2 :(得分:0)

如果您有以下声明:

onclick = showText;

评估右侧表达式并将结果分配给左侧。如果标识符showText解析为函数对象,则分配对该对象的引用。

如果showText之后是括号括起来的正式参数列表,即showText(),则使用提供的参数调用该函数,并分配结果。形式参数列表可以为空。