zoukankan      html  css  js  c++  java
  • 对自执行匿名函数的理解

    问题:我一直以来对自执行匿名函数就不是太理解尤其对其写法(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>
  • 相关阅读:
    组合数取模 Lucas定理
    关于上下界的二分查找
    POJ 1091 跳蚤
    Eular 函数模板
    POJ 数学(3)
    SRM 567 div2
    SRM 570 div2
    最大最小搜索,alpha beta 剪枝
    JavaScript:prototype属性使用方法
    ArcGIS网络分析之Silverlight客户端服务区分析(五)
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/7623561.html
Copyright © 2011-2022 走看看