闭包
- 简单的理解就是内层函数可以访问外层函数中的变量
- 有时候需要用到函数内的局部变量,在正常情况下是不能读取到的,这个时候就需要用到闭包
闭包应用的特殊情况
函数作为参数被传递
函数作为返回值被返回
this
this的五个应用场景
普通函数、
对象方法、
call apply bind
class
箭头函数
1. 普通函数: 普通函数this指向window
2. 对象方法: 对象方法中的this,指向当前对象
3. call、apply、bind:
call apply bind中调用, this指向被传入的对象
call和apply和bind都可以改变this的指向
// call 可以改变this的指向 将this指向改成第一个参数
// 第二个参数是单个
// apply 可以改变this的指向 将this指向改成第一个参数
// 第二个参数是一组
// bind 也可以改变this的指向 需要手动调用
4. class(es6新增): class中的方法中调用, this指向实例对象
5. 箭头函数(es6新增): 箭头函数,this指向父级上下文