zoukankan      html  css  js  c++  java
  • 闭包

    定义:闭包就是能够读取其他函数内部变量的函数,在javascript语言中,只有在函数内部的子函数才能够读取局部变量,闭包起到了将函数内部与函数外部连接起来的桥梁作用。

    函数a的内部函数b被函数a外部的变量引用时就创建了一个闭包。

    特性:

      封闭性:外界无法访问闭包内部的数据,除非闭包主动向外界提供访问接口;

      持久性: 一般的函数调用完毕之后系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然存在系统中,闭包中的数据依然存在,从而实现对数据的持久使用;

    优点:减少全局变量、减少传递函数的参数量、避免变量之间相互影响、封装;

    作用:①可以读取函数内部的变量; ②可以让这些变量的值始终保存在内存中;

    注意点:①内存消耗过大,谨慎使用,否则会影响网页性能。在ie浏览器中可能会存在内存泄漏。解决办法是在退出函数前将不使用的局部变量全部删除 ②闭包会在父函数外部改变父函数内部变量的值。如果你把父函数当做对象使用,把闭包当做它的公共方法,把内部变量当做它的私有属性,需注意不要随便改变父函数内部变量的值。

  • 相关阅读:
    [Graph]Doubling Algorithm
    Luogu 3203 BZOJ 2002——弹飞绵羊
    BZOJ 1468——tree
    BZOJ 10628 Luogu 2633
    Mo's Algorithm
    bzoj1063: [Noi2008]道路设计
    bzoj1264: [AHOI2006]基因匹配Match
    bzoj1177: [Apio2009]Oil
    bzoj1260: [CQOI2007]涂色paint
    bzoj3674: 可持久化并查集加强版
  • 原文地址:https://www.cnblogs.com/hmycheryl/p/8601902.html
Copyright © 2011-2022 走看看