对自执行匿名函数的理解

问题:我一直以来对自执行匿名函数就不是太理解尤其对其写法(function(){})()感觉很困惑。现在对这种写法,为什么这样写有了一个相对清晰的认识。

大家想看一个代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>self executing anonymous function</title>
 6 </head>
 7 <body>
 8     <script>
 9         //定义一个函数表达式
10        var test=function () {
11             alert("test");
12         }
13         //调用test()函数。
14         test();
15     </script>
16 </body>
17 </html>

这段代码等价于下面这段:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>self executing anonymous function</title>
</head>
<body>
    <script>
        //定义一个函数表达式,并调用它。
       var test=function () {
            alert("test");
        }();

    </script>
</body>
</html>

可以看到,第二段代码只是在匿名函数后面直接加上一个括号,相当于第一段代码的test();

那么自执行匿名函数的形式(function(){})(); 其实就相当于test()。所谓的自执行,只是加了最外层的括号。调用了里面写的匿名函数。

把上述代码改成自执行匿名函数的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>self executing anonymous function</title>
</head>
<body>
    <script>
        //定义一个函数表达式,并调用它。
        (function () {
            alert("test");
        })();

    </script>
</body>
</html>

 

posted @ 2017-10-03 12:11  技术让世界更精彩  阅读(148)  评论(0编辑  收藏  举报