各场景下 this 的默认指向:
- 在普通函数中指向 window
- 在事件函数中指向 事件源
- 在定时器中指向是 widnow
- 在自执行函数中指向 window
- 在对象中指向 对象
- 在箭头函数中是没有this指向的 往上级查找
修改this指向的方法:
1)函数名. call(要改变的指向,参数1,参数2,.......);
2)函数名. apply(要改变的指向,【参数1,参数2,.......】);
3)函数名. bind(要改变的指向,参数1,参数2,.......) ;
区别:
call和apply的区别:传参时的格式不一样,apply要以数组形式。
bind和call/apply的区别:call/apply侧重借用,一定有个调用的过程,本质也是修改this,而bind就
是用来修改this,不调用(可手动调用,后面加() )
bind的意义:一些场景下,函数并不是立即执行,而是某个时刻被回调的 这时候bind更合适,如定
时器函数。