javascript - 自调用函数

标签 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## .

它是如何工作的?

最佳答案

您需要使用一些分号。否则,语句就会变得困惑。

我认为发生这种情况的原因是调用 test 的函数根本没有被调用,而是作为第一个参数传递给 test2

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

关于javascript - 自调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36506402/

相关文章:

javascript - 使用 dojo 按键事件时无法避免最后一个字符输入

javascript - 使用 JavaScript 在 iPhone 的虚拟键盘中捕获 "done"按钮单击

javascript - 使用 typescript 批量删除数组

javascript - npm http包只提供了package.json,没有javascript文件

javascript - JQuery:复选框链无法正常工作

javascript - Survey JS射电计算

javascript - 获取 $ ('div' ).each() 中的最后一项

javascript - 为什么不显示在 Nodejs 和 mongoose 中创建的任何集合

javascript - 修改文件jquery.fancybox-1.3.4.js重写_draw函数,Jquery

javascript - jquery 返回选择标签中所选项目的文本以及其他选择标签中所选项目的文本