闭包是什么?怎么形成一个闭包?为什么使用闭包?

在很多情况下我们会遇到闭包这个问题,也有很多人不太理解闭包以及闭包的形成,下面就给大家简单说下闭包。

首先说什么是闭包,闭包就是    有权访问另一个函数作用域变量的函数都是闭包,让我们举个例子

在我们写代码的时候遇到一个函数,这是正常函数的写法:

              

function a() {
				var n = 0;

				function b() {
					n++;
					console.log(n);
				}
				b();
			}
			a();

而用闭包的写法是:

            

            function a() {
				var n = 0;

				function b() {
					n++;
					console.log(n)
				}
				return b;
			}
			var c = a();
			c();


//此时就是让c等于整个函数a( );而函数a里的返回值是b,但没有输出,只是return出来了而已;

//然后再调用函数c( ),意思就是触发函数c调用b的值然后输出出来值。

这就是怎么形成一个闭包的写法。这里的c函数访问了构造函数a里的变量,所以形成了一个闭包。

 

为什么使用闭包?

我们知道,JS的每个函数都是独立的,可以获取外界信息,但是外界却无法直接看到里面的内容,

我们将变量n放在了函数里,除了b函数之外,没有其他的办法可以接触到变量n,而且在函数a外定义

同名的变量n也不会受到影响,这就是所谓的“封装性”

而之所以使用return  返回函数,是因为在函数a外无法直接调用b函数

所以return出去

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值