自我调用函数

时间:2016-04-08 18:05:57

标签: javascript

我对javascript中自调用函数的执行流程感到有些困惑。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>

    var test = function () {
        alert("Test1##");
    }

    var test2 = function () {
        alert("Test2!!");
    }

    (function () {
        test();
    })();

</script>

</body>
</html>

结果:Test2!!。 我希望它能提醒Test1##因为我正在调用那个特定的函数。

但是,如果我在每个函数testtest2之后包含分号,结果就是我预期的结果:它会提醒Test1##

它是如何运作的?

1 个答案:

答案 0 :(得分:4)

你需要使用一些分号。否则语句会被混合。

为什么我认为这种情况发生了调用test的函数根本没有被调用,但它被作为第一个参数传递给test2

您可以在此处看到此行为:https://jsfiddle.net/ssgagr3k/