闭包

1. 从闭包的定义开始
首先从闭包的定义来说是:闭包是有权访问另一个函数作用域中的变量的函数。
3. 引出作用域
其中的作用域是指,在某个空间范围内的,可以对数据进行读写操作的区域。对于变量而言它只有全局作用域和函数作用域,没有块级作用域。全局作用域呢:全局作用域下的变量,在任一函数内部都可以访问,定义的变量只有在程序全部运行结束或者关闭浏览器界面时才会被回收清理。块级作用域呢:在里面的变量,都不会被外泄或者暴露,不会污染到外面,不会对其他JS脚本或者库产生影响。
4. 指出闭包的作用
所以我们常使用闭包的作用
一是:沿着作用域链读取自身函数外部的变量,
二是:将外部变量始终保存在内存中。
5. 指出使用闭包的注意事项
当时在使用闭包时也应该注意不能滥用。会导致内存泄漏。同时使用闭包会改变父函数内部变量的值

另:
有时候会追问你使用过的闭包场景?
封装相关的功能集,采用函数引用方式的setTimeout调用,将函数关联到对象的实例方法
执行上下文和作用域链的关系?

闭包_第1张图片

你可能感兴趣的:(JS基础)