我对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##
因为我正在调用那个特定的函数。
但是,如果我在每个函数test
和test2
之后包含分号,结果就是我预期的结果:它会提醒Test1##
。
它是如何运作的?
答案 0 :(得分:4)
你需要使用一些分号。否则语句会被混合。
为什么我认为这种情况发生了调用test
的函数根本没有被调用,但它被作为第一个参数传递给test2
。
您可以在此处看到此行为:https://jsfiddle.net/ssgagr3k/