zoukankan      html  css  js  c++  java
  • JS中的闭包问题总结

    • 严格意义上的闭包,严格闭包通过栈内存不销毁,保护内部变量,而且下一级作用域可以访问内部变量
    • 更严格意义上的闭包,函数可以在父函数外面调用父函数作用域的值
    • 在函数执行的时候,函数体中有返回值,函数执行的作用域不销毁
    • 调用了上一级栈内存的变量,并返回给函数外,造成了上一级作用域不销毁(栈内存)
    • 缺点
      • 会造成很多不销毁的栈内存,影响浏览器的性能
    • 优点
      • 保护内部变量不被外界所污染,内部变量也不污染外部变量
      • 可以通过返回值访问内部变量的值
    • 销毁的作用域
      • 当函数执行完,如果没有返回值,供外面作用域调用则直接销毁
      • 在函数内部的自执行函数,虽然调用了上级作用域的值,但是函数执行完作用域依然销毁
      • 在我们的函数执行的返回值,紧跟着当前函数直接执行的时候,作用域也会销毁
      • 产生第三方对函数内部变量有承接,赋值的时候,当前作用域不销毁,这种销毁时暂时不销毁
      • 在绑定事件中的函数,函数的栈内存是永远不销毁的
      • 函数和DOM形成映射,是操作DOM的时候方法,这时候的函数作用域是不销毁的
  • 相关阅读:
    linux top
    虚拟内存
    strcpy与strncpy
    C++ 踩内存
    MySQL -- 全文检索
    MySQL -- 全文检索(自然语言全文检索)
    MySQL -- innodb中cardinality是如何统计的
    MySQL -- Fast Index Creation
    python -- 生成器
    MySQL中模拟oracle中的rownum列
  • 原文地址:https://www.cnblogs.com/Scar007/p/7640643.html
Copyright © 2011-2022 走看看