作用域和闭包的知识点
-执行上下文:
1、范围:一段
-this:要在执行时才能确认值,定义时无法确认;
作为构造函数执行;
作为对象属性执行;
作为普通函数执行;
call apply bind;
-作用域:javascript没有块级作用域;
只有函数和全局作用域;
-作用域链:在函数作用域和全局作用域中没有定义的变量称为,自由变量;
作用域链就是执行自由变量时,本作用域没有,一直往父集作用域找;
-闭包:函数在执行时,并不使用全局下变量,只使用定义时已创建的变量,其只是在本函数内找自由变量,这就是闭包;
闭包的使用场景:
函数作为返回值;
函数作为参数传递;