ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

闭包的理解

2021-07-01 10:57:29  阅读:173  来源: 互联网

标签:闭包 function console debugger 作用域 理解 log


闭包 - closure

闭包是函数和词法作用域产生的一种词法绑定的现象.函数对象的[[scope]]属性,保存着该函数被定义的时候所能够直接访问的作用域对象。

一般需要满足条件: 1. 函数嵌套; 2. 访问所处作用域。

function foo() {
    var a = 1,
        b = 2;
    return function first() {
        debugger;
        console.log(b);
        return function logNum() {
            debugger;
            console.log(a); // a存在闭包内, b不存在没有被访问就被释放了
        };
    };
}
foo()();

2021-01-09_closure1

作为对比:

var a = 10;
void (function () {
    debugger;
    console.log(a);
})();

2021-01-09_closure2

闭包的应用

利用闭包的特性,可以模拟私有成员变量,处理事件回调,比如柯里化,bind 等等

参考

标签:闭包,function,console,debugger,作用域,理解,log
来源: https://blog.csdn.net/weixin_40959812/article/details/118381468

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有