闭包和作用域的理解

79 阅读1分钟

闭包的理解

什么是闭包

内部函数用了外部函数的数据,内部函数叫闭包。 正常情况下,函数执行完成,内部变量会销毁(销毁:释放内存空间) 特性: 内部函数没有执行完成,外部函数变量不会被销毁

闭包函数举例:在这里插入图片描述

闭包的优缺点是什么?

优点: 闭包的优点是可以避免全局变量的污染;

缺点: 1.由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

作用域链:

函数内部使用变量,如果当前作用域没有,会到上一层去找,如果还是没有继续上一层 直至全局去找,要是还是没有 报错undefined 在这里插入图片描述