JavaScript匿名函数行为

时间:2015-04-09 17:28:26

标签: javascript

以下两个JavaScript代码段代码之间有什么区别。他们的行为不同。

window.onload = function()
{
    mainForm.onsubmit = function(e) {
        alert("Submit");
    }
}

window.onload = my_func();
function my_func() {

    mainForm.onsubmit = function (e) {
        alert("Submit");
    }
}

使用以下HTML代码时。按下提交按钮后,我会从第一个片段收到“提交”消息,但第二个片段没有任何消息。

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="utf-8">
        <title>JS Test</title>
        <script src="test.js"></script>
    </head>
    <body>
        <form method="get" action="" id="mainForm">
            <input type="submit">
        </form>
    </body>
</html>

提前谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个

window.onload = my_func;

这有很大的不同。

window.onload = stuff()将调用stuff函数并将其返回值分配给onload属性。

window.onload = stuffstuff函数分配给属性onload。当load事件发生时,浏览器将调用该函数。功能是对象。当你用他们的名字引用他们而不打电话给他们时,你就是指这个对象。这类似于&#34;函数指针&#34;你在谈论

参考: Is there a difference between window.onload = stuff and window.onload = stuff()?