zoukankan      html  css  js  c++  java
  • js的闭包2

    当function里嵌套function时,内部的function可以访问外部function里的变量。

    先来说些,介绍些闭包的用处:就是为了避免内存泄露而存在的,闭包重点(或者意义)就是理解js的作用域;

    1.缓存
    2.面向对象中的对象
    3.实现封装,防止变量跑到外层作用域中,发生命名冲突
    4.匿名自执行函数,匿名自执行函数可以减小内存消耗
    .

    但我的观点依然是:

    不要刻意避免使用闭包,但也不应该非要闭包。按代码设计来,按编程节奏来

    function foo(x) {

      var tmp = 3;

      function bar(y) {

        alert(x + y + (++tmp));

      }

      bar(10);

    }

    foo(2);

     推荐:此文非常之好:https://zhuanlan.zhihu.com/p/22486908?refer=study-fe
     
    var local='变量'
    function foo(){
      console.log(local);
    }
     
    假设上面三行代码在一个立即执行函数中(为简明起见,我就不写立即执行函数了,影响读者理解)
     

    上面三行代码在一个立即执行函数中。

    三行代码中,有一个局部变量 local,有一个函数 foo,foo 里面可以访问到 local 变量。

    好了这就是一个闭包:

    「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。

    就这么简单。

    如果还不够了解,可以去看推荐网址。

    js闭包的闭包1

  • 相关阅读:
    sql推断时间
    COCOFrame
    第41周一
    第40周日
    第40周六
    第40周五
    第40周四
    第40周三国庆
    第40周二晚
    第40周二
  • 原文地址:https://www.cnblogs.com/luoyuji/p/7979520.html
Copyright © 2011-2022 走看看