简单理解闭包;

Posted qinlinkun

tags:

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

闭包:函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫做闭包;

(这个时候我们需要注意的是:函数调用完毕,这个函数形成的栈内存会被销毁)

通过一个案例来看一下:

function fn(){

  var a=12;

  a++;

  console。log(a)

fn()

当调用这个函数的时候,这个函数会开辟一个新的私有作用域,它里面声明的变量不会被window访问到,并且,函数

调用完之后,这个函数形成的栈内存也就是包括里面的变量就会被销毁;

但是有些时候我们不希望他的栈内存被销毁,还想使用它,这时候也涉及到函数的另一个知识点(函数归属谁跟他在哪里调用没有关系,跟在哪里定义有关

关于函数的栈内存不想被销毁的小案例:

function fn(){

  var a=13;

  return function (){

    a++

    console.log(a)

  }

}

var ss=fn()

ss()

在函数中你返回什么就是什么,在这个案例中,这个函数的返回值就是你想执行的函数,所有你一直调用它的时候,并不是调用函数里的内容,而是他的返回值

所以就解决了闭包的问题

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

闭包的简单理解

闭包的讲解与简单实用(重新理解)

js 闭包简单理解

简单理解闭包;

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

js 闭包的简单理解