3

我试图理解为什么 Javascript 的 onsubmit 使用匿名函数来获取它的值:

onsubmit = function() {return validForm();}

我知道 onsubmit 采用的是 true 或 false 值,但我不明白匿名函数如何需要获取 onsubmit 事件的 true 或 false 值,如下所示:

onsubmit = validForm();

如果有人能帮助我理解这一点,我将非常感激,谢谢大家,祝你有美好的一天。

4

2 回答 2

7

一个有效的分配是:

onsubmit = validForm;

您正在分配名为 validForm 的函数作为 onsubmit 处理程序。但是,当你这样做时:

onsubmit = validForm();

您将调用函数 validForm的结果分配给 onsubmit 处理程序。除非 validForm 返回一个函数,否则这是行不通的。

上面的匿名函数赋值起作用的原因是,它为 onsubmit 处理程序分配了一个函数——该函数在调用时又调用了 validForm 函数。

于 2012-07-23T13:40:55.047 回答
5

您正在调用validForm并设置onsubmit其返回值。例如:

function foo () {
    return "hi";
}

onsubmit = foo() // eq to onsubmit = "hi";

onsubmit = foo // onsubmit now has the same function as foo
于 2012-07-23T13:41:39.730 回答