闭包

本文详细解析了JavaScript中闭包的概念,包括其定义、创建方式、作用及原理。阐述了闭包如何允许内部函数访问外部函数作用域的变量,以及闭包在变量持久存储和私有化中的应用。同时,探讨了闭包中this对象的特殊行为和作用域链的机制。

1.闭包

        闭包是有权访问另一个函数作用域的变量的函数。创建闭包的常见方式就是在一个函数中创建另一个函数 
       JS允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包

2.闭包的作用

         获取变量的内部函数和让变量永远保存在内存中

3.this对象

         在闭包使用的过程中this对象也会导致一些问题。this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this=window,而当函数被作为某个对象的方法调用时,this等于那个对象。但是匿名函数的执行具有普环境局限性,因此,this通常指向window。

4.闭包原理

        (1)在后台执行环境中,闭包的作用域链包含着他自己的作用域,包含函数的作用和全局作用域

        (2)通常函数的作用域及其变量都会在函数执行之后被销毁

        (3)但是当函数返回一个闭包时,这个函数的作用域将会一直在内存中保存直到闭包不存在为止。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值