zoukankan      html  css  js  c++  java
  • 闭包

    前言
    闭包:指函数变量被隐藏在作用域链之内,这时看起来像是函数将变量“包裹”起来了(函数对象通过作用域相互关联起来,函数体内部的变量都可以保存在函数作用域内,这种特性在计算机文献中成为闭包)。闭包是一个可以重用的对象,又保护对象不被篡改的一种机制。
    作用域和作用域链
    作用域:作用域是一个变量的可用范围,其实质是一个保存变量的对象,使用作用域可以避免不同范围的变量相互干扰。
    全局作用域:在 JavaScript 中的全局作用域就是 windows。优点是可以重复使用,随处可用,但会造成全局污染(全局污染指在两个脚本中存在同名的变量,当这两个脚本在同一个窗口中运行时,由同名变量造成的混乱。)
    函数作用域:临时创建的活动对象 AO(activation object),该对象包含了函数的所有局部变量、命名参数、参数集合以及 this,当运行上下文被销毁时活动也会被销毁(闭包形成的原因就是因为活动对象被引用着无法销毁而导致的)。优点是不污染全局,但不可重复使用且仅在函数内才可以使用。
    程序执行的原理

  • 相关阅读:
    Python深入05 装饰器
    Python深入04 闭包
    Python深入03 对象的属性
    Ubuntu (虚拟机同样) 更换内核?
    .out
    GCC 编译详解
    linux 编译内核 /boot空间不足?
    Java Swing提供的文件选择对话框
    Java Swing 实时刷新JTextArea,以显示不断append的内容?
    为什么要编译Linux内核?
  • 原文地址:https://www.cnblogs.com/aioverg/p/11400623.html
Copyright © 2011-2022 走看看