javaScript 前端面试题 30天学习计划 ----(第三天)
日常任务
- 前端面试题练习
- 学习习题所提知识点(概念、内容、用法)
- 掌握习题答案
- 用自己的理解解答习题
- 复习之前所学知识
- 代码操作
- 掌握习题答案
- 记忆知识点(概念、内容、用法)
闭包的概念?优缺点? 学习Javascript闭包
概念: 在函数内定义的函数,并且对父函数的变量进行引用则称为闭包。
function a(){
var a = 1;
function b(){
a++;
console.log(a);
}
return b;
}
// a(); // b(){ a++; console.log(a);}
var a1 = a();
a1(); // 2
a1(); // 3
var a2 = (function(){
var b = 0;
return function(){
b++
console.log(b)
return b;
}
})()
a2();//1
a2();//2
a2();//3
优点: 弥补了外部无法访问函数内部变量的问题,实现了变量私有化操作。
缺点: 闭包操作在执行过程中,子函数对父函数变量的引用会使变量保存在内存中,函数执行完毕并不会销毁,滥用闭包会影响浏览器性能,造成内存溢出。