JS this指向问题
1. 定义:
在函数运行时,自动生成的一个内部对象,只能在函数内部使用。this的指向是确定不了的,只有在函数执行的时候才能确定this到底指向谁?这表明this只与函数的执行环境有关,与函数的声明环境无关。
2. 需要知道的一些知识:
- 全局变量默认挂载在window对象下
- 一般情况下this指向他的调用者
- es6的箭头函数中,this指向创建者,而不是调用者
- 通过call,apply,bind可以改变this的指向
3. 到底指向谁:
- 1.在函数调用时:
- 非严格模式下this指向window;严格模式下this指向undefined
- 2.作为对象方法调用时时:
- this指向对象本身。
- 3.在html中作为事件触发时:
- this指向事件源.
- 4.new关键字(构造函数)
- this指向实例对象
- 5.es6(箭头函数)
- this指向创建者而不是调用者。
4. 改变this指向:
call,bind,apply。
call