js闭包
啥是闭包? 闭包是能读取其他函数内部变量的函数,js中能读取一个函数内部变量的只有该函数的后代函数,在函数的外部是访问不了函数的变量的. 需要操作某个函数的内部变量时,不能把所有的操作都放在函数内部,这样就需要内部函数作为一个桥梁,将函数的信息输送出来 注意一点,在函数内部声明变量时必须要使用var,否则系统会认为你声明的是一个全局变量 声明变量时,如果不写var,系统会认为声明的是window.a,即window对象的属性 闭包有啥用? 1.可以防止全局的命名空间被污染 --如果要写一个累加器,不使用闭包的话,就必须定义一个全局的变量来接收 var count = 0; function add(){ count++; console.log(count); } //每次调用add函数count就会加1 add(); add(); add(); //这个函数如果count变量放在函数内部,每次调用函数时count都会被重置为0,不能达到累加的作用 //如果使用闭包就不会出现这一问题 2.便于模块化开发 使用闭包开发的项目各个功能都被封装到了各自的函数中,之间互不影响 3.安全性 将变量都变为私有的,只有通过内部函数才能访问函数的变量,能够提高成程序的安全性 闭包咋写啊? 上面的例子如果写成闭包的形式就是这样: function add(){ var