1、闭包全面理解

一、什么是闭包:

闭包是指一个函数能够访问并且操作其外部作用域的变量,即使该变量在函数执行完后,也仍然存在于内存中,闭包通常由函数和定义他的词法环境组成。

二、闭包所具有的特性:

  1. 闭包可以访问其外部函数中的变量,即使外部函数以及执行完毕,变量仍然存在于内存中,
  2. 闭包可以将变量保存在内存中,并在多个函数调用之间共享这些变量
  3. 闭包可以用来创建私有变量和方法,从而实现封装

三、闭包对页面的影响:

  1. 闭包可以帮助减少全局变量的使用,从而减少命名冲突和代码混乱。
  2. 闭包可以提高代码的可读性和可维护性
  3. 闭包可能会造成内存泄漏,因为它可以让变量一直存在于内存中,导致内存溢出
  4. 闭包的性能可能会受到影响,因为它需要在内存中保存变量,并且需要额外的时间来访问这些变量

闭包的案例:

function outerFunction() {
  var outerVariable = 10;
  function innerFunction() {
    var innerVariable = 20;
    console.log(outerVariable + innerVariable);
  }
  return innerFunction;
}
var closure = outerFunction();
closure(); // 输出 30

案例介绍:

在上述代码中,outerFunction的内部定义了一个innerFunction函数,并将其作为了返回值返回。innerFunction中访问了outerVariable变量,这是因为内部函数可以访问其外部函数的变量与参数,即使外部函数已经返回执行完毕,这些变量仍然存在于内存中

 

待补充.......

posted @ 2023-04-01 21:11  小田学不好  阅读(65)  评论(0)    收藏  举报