this是什么
实际上this就是一个指针,他最终指向函数点用的对象,通常this指向有很多种情况
this的默认指向
通常情况下this是默认指向window的
console.log(this);
严格与不严格
在严格模式下,函数中的this是指向undefined的,但是在非严格模式下函数中的
this是指向window的
`function fn(){
console.log(this);
} fn();`
箭头函数
箭头函数指向定义时,定义的this就确定了,指向了他的外层
箭头函数不能作为构造函数使用会出现错误
箭头函数没有自己的this不能使用call、apply、bind这些方法 改变this的指向
隐式绑定
如果函数调用时,前面存在调用它的对象,那么this就会隐式的绑定到这个对象上。
如果函数调用前存在多个对象,this指向距离调用自己最近的对象
显示绑定
显示绑定就是通过call、apply、bind方法改变this指向。这三个方法传递的第一个
参数就是最终的this指向。如果第一个参数是null或undefined,那么this将采用
默认绑定的规则,指向全局对象。
new绑定
使用new绑定时,this指向新创建的那个对象。
总结
this绑定无非就是分为几种场景:默认绑定、隐式绑定、显示绑定、new绑定、
箭头函数绑定、只要分辨出对应的方法其实很简单