****闭包 出现在JavaScript中
// 它是JavaScript中特有的一种函数的结构( 一种嵌套用法 )
// 闭包拥有三个特征
// 1. 函数嵌套函数
// 2. 内层函数使用了外层函数的局部变量(参数)
// 3. 内层函数被返回到外部 在外部调用
// 闭包的作用
// 1. 隔离作用域 避免全局污染
// 2. 保护具有共享意义的变量 为其提供相关的操作接口(function)
// 闭包的缺点
// 闭包储存的变量一直存在在内存中 不被释放
// 大量使用闭包会浪费资源 占据内存空间
function fn() {
var num = 10;
function inner() {
var num2 = num + 5;
return num2;
}
return inner;
}
var fn2 = fn();
console.log(fn2());
2.return 返回值可以是任何数据类型
3.自执行函数是一次性的,正常情况下 执行完毕后会自动释放内部的变量