简述JavaScript中的闭包原理

简述JavaScript中的闭包原理哟

2018年6月5日 晴 微风 温度 26-36°C

JavaScript中的闭包是指一种 相对的空间概念

我们拿我们所处空间来举例:

我们当下所坐在房间里,这个房间就形成了一个封闭的闭包空间
房间包裹着我们,我们在房间内部,可以访问房间中的任何东西,比如
空调,电视,电脑,水杯…
如果我们现在的书桌,有一个抽屉,这个抽屉则又形成了一个闭包空间
假设 抽屉里有一只猫 和 一些 玩具,那么那只猫则可以随意访问那些玩具,而我们则不能访问
那么相对于我们所在的小房间,则有一个大房间包裹着我们这个小房间,
大房间里的其他人无法直接访问到我们小房间的内部
如果我们想要访问 包裹着我们房间的其他大盒子 则只需要我们走出当前小盒子即可
这里写图片描述
我们需要记着三个空间概念:


  • 当前空间
  • 属于当前空间的子空间
  • 当前空间的父空间

当前空间 -> 当前空间
当前空间 -> 当前空间的父空间
当前空间 !-> 当前空间的子空间

//代码说下
function a(){
  var n = 0;
  function inc() {
	var s = 666;
    n++;
    console.log(n);
  }
  inc(); 
  inc(); 
}
a(); //控制台输出1,再输出2

//在这里 如果a是当前空间时a 能访问自己空间中的数据n,但无法访问其子空间inc中的 数据s
//如果inc 是当前空间时  inc可以访问 属于当前空间的变量s ,
//也可以访问到包裹着自己的父级空间的a下的变量n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值