题目
1.this的不同应用场景,如何取值
2.手写bind函数
3.实际开发中闭包的应用场景,举例说明
知识点
1.作用域和自由变量
作用域
1.全局作用域
2.函数作用域
3.块级作用域(ES6新增)
自由变量
1.一个变量在当前作用域没有定义,但被使用了
2.向上级作用域,一层一层依次寻找,直到找到为止
3.如果全局作用域没有找到,则报错:xx if not defined
2.闭包
· 作用域应用的特殊情况,有俩种表现:
1.函数作为参数被传递
2.函数作为返回值被返回
· 自由变量的执行是在函数定义的地方向上查找,不是在函数执行的地方向上查找
3.this
· this取值是在函数执行的时候确认的不是在函数定义的时候确认的
· 作为普通函数
· 使用 call apply bind
· 作为对象方法被调用
· 在class方法中调用
· 箭头函数
实际开发中闭包的应用
· 隐藏数据
· 做一个简单的catch工具