闭包的简单理解

Posted daleizi147

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭包的简单理解相关的知识,希望对你有一定的参考价值。

什么是闭包?

简单来说,闭包是指可以访问另一个函数作用域变量的函数,一般是定义在外层函数中的内层函数。

(父函数包裹子函数,这个子函数中存在能够访问父函数中变量的引用,这个子函数就是闭包)

为什么需要闭包?

局部变量无法共享和长久的保存,而全局变量可能造成变量污染,所以我们希望有一种机制既可以长久的保存变量又不会造成全局污染,在全局作用域中可以访问到被保存在局部作用域的变量。

特点

  • 占用更多内存
  • 不容易被释放

何时使用?

变量既想反复使用,又想避免全局污染

如何使用?

1.定义外层函数,封装被保护的局部变量。

2.定义内层函数,执行对外部函数变量的操作。

3.外层函数返回内层函数的对象,并且外层函数被调用,结果保存在一个全局的变量中。


代码

function Fn(){
      var xx = ‘aaa‘;
  
      return (function(){
            return xx;
    })()          
}

var xxFn = Fn();

console.log(xxFn) // --->‘aaa‘   ,这个xxFn就是局部变量中xx的引用

 

以上是关于闭包的简单理解的主要内容,如果未能解决你的问题,请参考以下文章

简单理解闭包

简单理解js闭包

js 闭包简单理解

js 闭包的简单理解

作为一个初学者如何简单地理解闭包

JS---闭包