JavaScript闭包

677 阅读1分钟

闭包是什么:

  • 闭包就是一个函数
  • 是一个函数体内可访问的变量组合

闭包的作用:

  • 闭包最大的作用就是私有化变量
  • 避免变量污染
  • 闭包的一大特性就是内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(return)了之后。

闭包实现了什么?

基于以上特性,JavaScript可以实现私有变量、特权变量、储存变量等

用代码说明:

1、由浅入深

(function(){
var a = 1;
function sum(){
    var b = 2;
    var c = a + b;
    console.log(c);//3
}
    sum();
})()

2、

function Person(){
    var name = 'cxk';
    this.getName = function(){
        return name;
    }
    this.setName = function(value){
        name = value;
    }
}

const cxk = new Person()

console.log(cxk.getName()) //cxk
cxk.setName('jntm')
console.log(cxk.getName()) //jntm
console.log(name) //name is not defined