什么是闭包,闭包有什么应用特性.

         闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

             通俗点讲:     闭包就是你的女人红杏出墙, 外人可以很轻易的通过它了解你家里的情况, 甚至指示她改变你的家,  只要你还没离婚, 你家就会被一直拖着, 这个状态很容易出问题. 但外人用着却很方便.....偷笑

             在js中,函数内部可直接访问外部变量,   外部却无法访问到内部变量,  在这我们实现的方法就是闭包了,    

     如下代码:


      以上代码中,  函数g()就被包在函数f()内部, 这时f()内部的所有的局部变量,对g()都是可见的, 但是反之就不行. 

     这就是javascript特有的"链式作用域" 结构.   子对象会一级一级的向上寻找所有的父对象的变量,  所以父对象所有的变量对子对象都是可见的,  反之就不成立.

     我们需要f()外部读取内部的变量a, 直接是无法读取的,   但是g()可以读取到f()中的a, 那么我们就把g()作为返回值.  这样我们就可以在f()外部读取他的内部变量了.

闭包的应用特性:

       1.局部变量 : 在函数中定义有共享意义的局部变量. ( 注: 定义成全局变量会对外部造成污染 ).

       2.内嵌函数: 在函数声明中有内嵌函数, 内嵌函数对函数中的局部变量进行访问.

       3.外部使用: 函数向外返回此内嵌函数, 外部可以通过此内嵌函数持有并访问声明在函数内部的局部变量, 而此变量外部是通过其他途径无法访问的.

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陨石猎人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值