zoukankan      html  css  js  c++  java
  • javascript闭包

    1.什么是闭包?

    函数A 里面包含了 函数B,而 函数B 里面使用了 函数A 的变量,那么 函数B 被称为闭包。

    又或者:闭包就是能够读取其他函数内部变量的函数

        <script>
          function A() {
            var a = 1;
            function B() {
              console.log(a);
            }
            return B();
          }
          A(); // 1
        </script>

    2.闭包的特征

    函数内再嵌套函数

    内部函数可以引用外层的参数和变量

    参数和变量不会被垃圾回收制回收

    3.对闭包的理解

    使用闭包主要是为了设计私有的方法和变量。

    闭包的优点是可以避免全局变量的污染,

    缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

    在js中,函数即闭包,只有函数才会产生作用域的概念

    闭包 的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量始终保持在内存中

    闭包的另一个用处,是封装对象的私有属性和私有方法

    4.闭包的好处
    能够实现封装和缓存等
     

    5.闭包的坏处

    消耗内存、不正当使用会造成内存溢出的问题

    6.使用闭包的注意点

    由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,

    在IE中可能导致内存泄露

    解决方法是:在退出函数之前,将不使用的局部变量全部删除

  • 相关阅读:
    centos svn的配置使用
    bind 的使用
    我 && yii2 (二)
    我 && yii2 (一)
    vue handsontable 插件 如何验证该行内的某项内容是否填写 !
    sass穿透 scoped 的情况下 去修改ui组件的样式
    vue 3.0 编译巨慢 结局方法
    element-ui tree树形节点 自定义图标
    element
    treeselect 表单验证解决方法
  • 原文地址:https://www.cnblogs.com/gsq1998/p/12582426.html
Copyright © 2011-2022 走看看