displayDate()
函数。但是当我在不使用括号的情况下调用displayDate
函数时,它可以正常工作。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Click "Try it" to execute the displayDate() function.</p>
<button id="myBtn">Try it</button>
<p id="demo"></p>
<script>
document.getElementById("myBtn").onclick = displayDate();
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
</body>
</html>
此代码示例来自w3schools
答案 0 :(得分:1)
@Juergen在上面是正确的,但处理这个的另一个简单方法是直接声明函数:
document.getElementById("myBtn").onclick = function() {
document.getElementById("demo").innerHTML = Date();
}
显然,这假设您没有尝试重复使用该功能,但通常会更清洁。
答案 1 :(得分:0)
此语句调用displayDate函数并将返回值赋给onclick属性“myBtn”。
document.getElementById("myBtn").onclick = displayDate();
设置事件处理程序的更好方法是:
document.getElementById("myBtn").addEventListener("click",displayDate);
答案 2 :(得分:0)
使用括号编写函数时,会立即调用它。在JavaScript和其他语言中也是如此。
当您安装事件处理程序(这就是您所做的)时,您不想调用该函数,而是在事件发生时告诉使用哪个函数。因此,在这种情况下,您不能使用括号,因为您不想直接调用该函数,而是告诉以后应该调用哪些函数。
所以,不要写括号来安装事件处理程序。