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

Rus*_*ell 5 javascript

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

document.getElementById("mybutton").onclick = showText; 
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Dan*_*mms 12

showText返回函数 showText.

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

当你将一个函数附加到像.onclick这样的事件处理程序时,它期待一个function.

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

function showText() {
    return function () { 
        alert('hello world'); 
    }
}
Run Code Online (Sandbox Code Playgroud)