暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

简述JavaScript中的闭包原理

晓组智 2021-03-16
357

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


文章转载自晓组智,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论