函数的this指向

285 阅读1分钟

1. 箭头函数的this指向

1.class中定义箭头函数
箭头函数的this指向的是实例对象。
2. 在对象中定义箭头函数
箭头函数的this指向的是window或者当前对象的外层对象
总结:箭头函数的this指向当前函数的外层上下文对象。

2. 普通函数的this指向

1. 谁调用该函数,则该函数的内部指向为谁;
2, 若无调用对象,直接执行,则指向的是window;
3. 有bind和call的时候可以改变指向;
4. 构造函数以及构造函数中的this指向,指向的是实例对象;
5.setTimeoutsetInterval中的回调函数执行this指向的是window,因为无调用对象;
6.实例化对象传递的回调函数this一般没有调用对象指向的是window,除非用bind和call指向实例化对象
7.构造函数的this默认指向的是实例化对象,因为

3. 判断this的指向

1.判断是否为箭头函数 
是: 
  在class中指向实例对象,在class中且被解构全局中指向undefined(满足2个条件:为class的箭头函数,被解构到全局);
  在普通对象中指向window,在普通对象作为内层嵌套函数指向的是外层函数的this;
	否: 进入下一步
2.判断调用的对象
	指向调用对象(即.前面的对象)
3.