一次看透什么是闭包
认识闭包
- 函数的执行空间不会销毁
- 外部函数 返回一个 内部函数
- 内部函数 中使用了 外部函数的私有变量
闭包函数
- 概念
+ 函数内的函数
- 特点:
1. 函数外部可以访问到函数内部的私有变量 ==>(必须通过闭包函数访问)
2. 延长了函数内私有变量的生命周期 ==> (必须要使用闭包函数)
3. 函数执行空间不会销毁 ==> 内存溢出
闭包的作用(闭包有什么用)
+ 解决外部访问不到函数内部变量的问题;
+ 局部变量会常驻在内存中;
+ 避免使用全局变量,造成全局变量污染。
闭包可以让你在一个内层函数中可以访问到外层函数的作用域。
我们在什么情况下使用闭包?
通常当你使用只有一个方法的对象时,可以使用闭包。
为的是创建私有变量,延长变量的生命周期
注意事项
如果不是某些特定任务需要使用闭包,在其它函数中创建函数是不明智的,因为闭包在处理速度和内存消耗方面对脚本性能具有负面影响
例如,在创建新的对象或者类时,方法通常应该关联于对象的原型,而不是定义到对象的构造器中。
原因在于每个对象的创建,方法都会被重新赋值
手写一个闭包 (看好了,我只写一遍)
function outer(){
aa = 100
function inner (){
return console.log(aa+1)
}
return inner
}
outer() //到此出闭包就写完了,此时的outer() 调用的是inner函数,要是想让console.log(aa+1),真正打印还需要再写一行
outer()() //现在才可以在控制台看到输出的内容 101
标签:闭包,aa,outer,函数,私有,变量
From: https://www.cnblogs.com/maxiaohu/p/16875213.html