zoukankan      html  css  js  c++  java
  • javascript中的自执行函数

    学习es6的时候遇到了自执行函数,感觉有必要写下来,一方面加深自己的记忆,另一方面还能分享给大家。

    什么是自执行函数?

    自执行函数就是为了不污染全局变量命名空间的一中匿名函数,相当于自己创建了一个作用域,下面我来说一下它的原理:

    function foo() {...}     // 这是定义,Declaration;定义只是让解释器知道其存在,但是不会运行。
    foo();                   // 这是语句,Statement;解释器遇到语句是会运行它的。
    

    上面的函数就是传统的函数,它写起来有点啰嗦,而且会污染全局命名空间,这样对我们来说并不友好,所以自执行函数就出现了,写法如下:

    (function foo() {...})();
    (function foo() {...}());//推荐使用这种形式

    上面的代码块就是自执行函数的两种形式,推荐使用下面的这种形式,具体好在哪我也不清楚,也许是因为包裹起来更像封装了一个函数,大家可以这么理解。传统的函数比如:function foo(...){} ,它其实是一种声明,对于解释器来说,就好像你写了一个字符串 "function foo(...){}",它需要使用解析函数,比如 eval() 来执行它才可以。所以把 () 直接放在声明后面是不会执行,这是错误的语法。如何把它变得正确?说起来也简单,只要把 声明 变成 表达式(Expression) 就可以了。也就是上述代码块中的函数。

    希望大家能理解,我也就不胜荣幸了。

      

     

  • 相关阅读:
    docker 命令
    php cli命令
    windows 中docker连接使用mysql数据库
    什么是微服务
    PHP7新特性
    Docker Machine 命令
    关于Docker目录挂载的总结(二)
    实验十一 MySQLl备份与恢复1
    实验十--- MySQL过程式数据库对象
    实验九 存储函数和触发器
  • 原文地址:https://www.cnblogs.com/daikefeng/p/6245990.html
Copyright © 2011-2022 走看看