什么是闭包?闭包的作用是什么

15,227次阅读
没有评论

共计 613 个字符,预计需要花费 2 分钟才能阅读完成。

闭包就是指有权访问另一个函数作用域中的变量的函数

js 采用的是词法作用域,也就是函数可以访问的变量在函数定义时写在哪里就确定了和函数被调用的位置无关。 闭包就是函数不在定义的词法作用域内被调用,但是仍然可以访问词法作用域中定义的变量

闭包可以被用在三个地方:

// name 只能通过 getName 接口来访问 
function Person(name) {
    this.getName = function() {
        return name;
    }
}
function module() {
    let inner = 1;
    let increaseInner = function() {
        inner++;
    }
    let decreaseInner = function() {
        inner--;
    }
    let getInner = function() {
        return inner;
    }
    return {
        increaseInner,
        decreaseInner,
        getInner
    }
}
let api = module();
console.log(api.getInner());
api.increaseInner();
console.log(api.getInner());
api.decreaseInner();
console.log(api.getInner());
for (var i = 0; i  5; i++) {
    (function(i) {
        setTimeout(function() {
            console.log(i)
        }, 1000);
    })(i);
}

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计613字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)