扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 前端 > javascript高频面试题 > 17.如何理解闭包?

闭包是指有权访问另一函数作用域中的变量,创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以访问到当前函数的局部变量。

闭包的作用:

  • 在函数外部可以访问到函数内部的变量
  • 可使已经运行结束的函数上下文中的变量对象继续留在内存中,不会随着函数的结束而自动销毁。

闭包的缺陷:增大内存使用量,并且使用不当很容易造成内存泄露。

示例:

var count= 0;//全局作用域
function add(){
    var count = 1; // 函数作用域
    return function(){ 
        count += 1; // 闭包,可以访问到上级作用域中变量
        console.log(count)
    }
}
var s = add()
s(); // 访问的是函数add内部的变量,输出2

点击面试手册,获取本站面试手册PDF完整版