闭包几乎是面试必备了。是js的精髓之一。
定义:
1.一个定义在函数内部的函数
2.用来读取其他函数内部变量的函数
3.将函数内部与外部连接起来的桥梁
ps:匿名函数属于闭包
用处:
1.可以读取函数内部的变量
2.让变量的值始终保持在内存中,而不被垃圾回收机制回收
缺点:
内存消耗大,有可能导致内存泄漏
用法:
在A函数的内部return一个函数,用来保存A函数的内部变量,同时供外部访问
function A(){ var num=1; return function(){ console.log(num++) } } var a=new A(); a //1; a //2;