闭包:
概念:函数与函数相互嵌套的情况,将内部函数保存到外部,能从外部访问内部函数环境下的所有变量
发生时间:将内部函数保存到外部的时候,闭包就形成了
闭包的缺点:把外部变量保存到内存中不被释放。导致空间的消耗,内存泄露。
闭包的作用: 1、可以访问内部变量; 2、模块化开发; 3、避免变量全局污染
闭包的使用场景:1、采用函数引用方式的setTimeout调用 ; 2、封装相关的功能集
function foo(x) {
var tmp = 3;
bar = function(y) {
return (x + y + (++tmp)); //2+10+4 //2+10+5=17
}
}
console.log(foo(2)); //undefined
console.log(bar(10)); //16
console.log(bar(10)); //17
function a() {
function b() {
var bb = 234;
document.write(aaa);
}
var aaa = 123;
return b;
}
var global = 100;
var demo = a();
demo(); //123