• javaScript 立即执行函数学习笔记


    立即执行函数:

    即执行函数(Immediate Functions),立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行

    立即执行函数(immediate function)术语不是在ECMAScript标准中定义的,但它很短有助于描述和讨论模式;
    这种模式有一些几部分组成:
    使用函数表达式定义一个函数(函数声明不能起作用)
    在结尾加上一对括号,让函数立即被执行
    将整个函数包裹在一对括号中(只有在你不将函数赋值给一个变量的时候才需要)(来自百度搜索)

    立即执行函数给了一个沙箱装着函数作用域,且在执行后立即销毁,访问不到他的scope,从而不用当心它会污染全局变量

    我们可以写一个例子,用前几天写的递归阶乘算法来验证:

     1         <script>
     2             var a = prompt("请输入值");
     3             var num = (function mul(a) {
     4                 if (a == 1) {
     5                     return 1;
     6                 }
     7                 return a * mul(a - 1);
     8                }(a))
     9             document.write(num);
    10         </script>

    正常情况执行这段代码之后,是可以查询到mul函数的

    而使用了立即执行函数之后,查询结果失败

    这是由立即执行函数性质决定的,这也让mul函数与其内容变量不会污染到全局变量和方法

    所以写立即执行函数一般也省略方法名。像这样

    var num = (function () {
                   }())

    但要注意的是,在写成立即执行函数时,这个函数已经算是表达式了,就如a+b这样

    放在函数体内也就不会直接生效了,而是需要赋值给变量之后才可以使用。

    博主是初学者,可能理解上会有错误,若有错误,求指正,谢谢

  • 相关阅读:
    Maven简介,安装,配置
    Centos 安装 Tomcat 并验证
    Centos 安装 jdk 和配置环境变量
    java基本数据类型
    centos7中docker安装并启动jpress
    在docker中访问网络
    在docker中运行一个nginx
    Centos7 安装docker 及使用其简单命令
    Centos7安装dnf工具管理rpm包
    C#获取外网IP地址;C#获取所在IP城市地址
  • 原文地址:https://www.cnblogs.com/raonet/p/10348487.html
Copyright © 2020-2023  润新知