zoukankan      html  css  js  c++  java
  • 函数的闭包

    闭包就是能够读取其他函数内部变量的函数。

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

    在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

    优点:是可以避免全局变量的污染。

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

    闭包的特点:

    1.函数嵌套函数

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

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

    垃圾回收机制与内存泄漏的意义

    垃圾回收机制:垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。

    内存泄漏:内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。

    会引起内存泄漏的有:闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环) setTimeout的第一个参数是字符串不是函数

    过多的使用闭包会引起内存泄漏

    因为闭包引用着另一个函数的变量,导致另一个函数已经不使用了也无法销毁,所以闭包使用过多,会占用较多的内存,这也是一个副作用。

    function x(){
    var i=0
    function y(){
    console.log(++i)
    }
    return y
    //y嵌套在x中
    //x返回y }
    var z=x() z()
    //函数x外的变量z引用了函数x内的函数y

  • 相关阅读:
    java 抽象工厂模式简单实例
    java 工厂方法模式简单实例
    java 简单工厂模式实现
    tomcat管理页面上如何查看工程下的文件
    如何用Ecplise部署Web项目到tomcat中
    Servlet中操作文件
    ServletContext是什么
    model1模式变为mv模式,实现业务逻辑和画面的分离
    jdbc操作工具类
    Cookie技术随笔
  • 原文地址:https://www.cnblogs.com/fortuneteller-li/p/13033162.html
Copyright © 2011-2022 走看看