var n1 =7;
function test() {
var n2 =8
function test2() {
alert(n2);
return n2
}
return test2
}
var t=test()
console.log(t());
这里的test2就是闭包,闭包可以理解成能给读取其他函数内部变量的函数,
本质上就是将函数内部和函数外部连接起来的一座桥梁
结论:闭包就是解决外部得到函数内部的局部变量
作用:
–实现变量私有化
–读取函数的内部变量
缺点:让函数的内部变量的值始终保持在内存中
过多的闭包一直占用内存,会造成内存溢出,内存泄漏
闭包需要手动释放资源
2,this代表‘调用者’
3,学习封装
1,隐藏内部实现
2,提供用户接口
3,提供扩展方法
如jQuery:
$.extend
$.fn.extend
$.自定义