• 简单理解闭包的概念和立即执行函数


    曾被人问起,立即执行函数是什么函数?他的回答是:闭包;我左思右想,又重新翻了一遍书,百度了一遍各种闭包的解释。最后 我还是坚持我的理解:立即执行函数并不是闭包,只是实现了闭包中的变量私有化功能。

    书上给闭包的定义如下:有权访问另一个作用域中的变量的函数。 所以单从闭包的定义来讲,自执行函数是不符合这一定义的,自执行函数是一个封闭的函数,无法访问外部变量。

    举个最简单的闭包的栗子

      function foo(){

        var a = “变量“;

        return function(){

          console.log(a)  

        }

      }

      调用foo()()  //打印结果:变量

      上面foo函数里返回了一个匿名函数,匿名函数可以访问到foo函数里的a变量,所以 这个匿名函数就是个闭包。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。;

    举个最简单的立即执行函数的栗子:

      (function(){

        alert('123)

      }())//无法直接访问其他函数内部的变量,只能通过传参访问外部变量;



      

  • 相关阅读:
    准备 LVM Volume Provider
    掌握 cinder-scheduler 调度逻辑
    Cinder 组件详解
    掌握 Cinder 的设计思想
    理解 Cinder 架构
    1 张图秒懂 Nova 16 种操作
    计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)
    Live Migrate 操作
    Resize Instance 操作详解
    关于Linux的10个核心面试问题与答案
  • 原文地址:https://www.cnblogs.com/xunhuang/p/9474631.html
Copyright © 2020-2023  润新知