闭包的基本概念:
- 闭包是函数的一种高级应用方式。
- 通过建立一个不被销毁的存储空间(通过返回一个引用类型值来建立),在函数的外部调用和使用函数内部的数据。
闭包的简单定义:
- 定义一个函数functionA,返回值是一个函数functionB。
- 函数functionB的返回值中,使用函数functionA定义的局部作用域变量。
- 在函数functionA的外部,调用函数functionA的,此时函数functionA的返回值函数functionB也将执行。
代码简单示例:
function funA(){
let a = 1;
return funB(){
let b = a;
return b;
}
}
let c = functionA(); //调用函数A 此时得到的是返回值函数funB;
let d = c(); //此处则是调用funB;
conslole.log(d);//输出1;
闭包的总结:
- 闭包的目的:在函数的外部调用它的局部作用域变量;
- 闭包的优缺点:1. 函数的作用域不会被销毁,所以作用域的内容永久存在,但是这会造成内存的大量占用,会降低程序的执行效果2.可以从外部访问函数内部的变量,很方便,但是这样同样会导致数据泄露,降低了安全等级。所以为了保护数据的安全性只在特殊情况下使用闭包。