this 几种应用场景
1.做为普通函数
2.使用call apply bind
3.作为对象方法被调用
4.在class方法中调用
5.箭头函数
this取什么样的值是在函数执行的时候确认的 不是在函数定义的时候确认的
普通函数中的this是window call,bind等会改变this的值所以打印的是传入的参数
对象函数中打印的this是当前对象
左图中setTimeout中是执行的是普通函数 所以this是window
右图中setTimeout中执行的是箭头函数 要像上级寻找this 所以是当前对象
总结
1.做为普通函数( window)
2.使用call apply bind(这几个方法会改变this的值 所以打印的是传入的对象)
3.作为对象方法被调用(当前对象)
4.在class方法中调用(当前class对象)
5.箭头函数(向上级查找最近的this)