我有一个名为showText()
的函数,它将表单文本框中的一些文本复制到其他地方的段落中。它的调用如下:
document.getElementById("mybutton").onclick = showText;
如果我将()添加到showText的末尾,它将无法工作,我从阅读中了解到类似的答案,这是调用函数的唯一方法。
稍后在脚本中它需要()工作:
window.addEventListener("keypress", function(e) {
var keycode = e.keyCode;
if (keycode == 13) {
showText();
}
}, false);
我不确定这里发生了什么。
答案 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()
,则使用提供的参数调用该函数,并分配结果。形式参数列表可以为空。